text: Title: Request.from_curl() with $-prefixed string literals
  Body: Chrome (and probably other things) sometimes generate curl commands with a [$-prefixed](https://www.gnu.org/software/bash/manual/html_node/ANSI_002dC-Quoting.html) data string, probably when it's easier to represent the string in that way or when it includes non-ASCII characters, e.g. the DiscoverQueryRendererQuery XHR on https://500px.com/popular is copied as 
  
  ```
  curl 'https://api.500px.com/graphql' \
  <headers omitted>
    --data-raw $'{"operationName":"DiscoverQueryRendererQuery",<omitted> "query":"query DiscoverQueryRendererQuery($filters: [PhotoDiscoverSearchFilter\u0021], <the rest omitted>' \
    --compressed
  ```
  
  , most likely because of `\u0021` in this payload.
  
  `scrapy.utils.curl.curl_to_request_kwargs()` isn't smart enough to understand this kind of shell escaping, so it puts `$` into the request body which is incorrect. Ideally we should support this, though I don't know if there are existing libraries to unescape this.