Pass the request object to the Route's `match' method.

Instead of passing only the path and the HTTP method to the `match'
method, we pass the entire request object.  This should be usefull for
matching options if a route is defined with some.

Also, the HTTP method was never used in this method, so this should have
no impact.
Enable the code to specify options on a route.

It's possible to specify options to a route, like this:

    get '/', {agent => 'mozilla'} => sub {
        ...
    };

but the code to actually validate the options was not done.  This
implementation is similar to the one in Dancer1, so it should be
compatible for the users.
reflect Changes
Merge branch 'franckcuny-pr/route-condition' into devel