Get a handler for the given request.
In addition to retrieving a handler for the request, the request itself may be modified - typically it will be
tagged with routing information. It is also acceptable to simply return the request as is. Play will switch to
using the returned request from this point in in its request handling.
The reason why the API allows returning a modified request, rather than just wrapping the Handler in a new Handler
that modifies the request, is so that Play can pass this request to other handlers, such as error handlers, or
filters, and they will get the tagged/modified request.