Move query string hack for request context to listener

Currently the UrlMatcher depends on the request context which leads to all
kinds of funky problems. Including failing tests in the current test suite.

The solution is to have the request context no longer directly depend on
the request, but instead populate the required information from a request
listener.

Better names for the listener are welcome.

PS: This solution feels kind of off to me. Shouldn't this case be handled by symfony/routing's `RequestContext::fromRequest()` directly? And if not, why?