Add request->dispatch_path and use that for route matching.

Dispatch 'should' be done on the "path you would append to request->base",
but its currently being done on the "full" path. Altering request->path to
match this behaviour is likely to cause back compatibility issues.

Add a request->dispatch_path method to calculate the path to be used for
dispatch and use that in route->match.

Closes #373.
Merge branch 'veryrusty/dispatch_path' into devel

* veryrusty/dispatch_path:
  Add request->dispatch_path and use that for route matching.