[HttpKernel] Fix UriSigner::check when _hash is not at the end of the uri

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

I have a weird server installation behind Varnish that rewrite the signed URL to add the _hash at the end of the url queries.
Exemple : 
URL called: http://exemple.com/page?foo=bar&_hash=123
URL received by PHP: http://exemple.com/page?_hash=123&foo=bar

When the _hash is not at the end of the URL, the UriSigner fail to verify it even if the _hash is correct.

The fix rewrites the check function to use parse_url and parse_str to analyse the URI and check the signature.
You could use `http_build_url` to generate the URL