New functionality "path-with-query-for" where additional params are form encoded

Constructing a url using path-for is not completely agnostic of the routing logic if you need to know which parameters are required in the route and which may be used as a query parameter.

This change adds a function "path-with-query-for" which appends additional parameters as form encoded query parameters to the url.

It also exposes "route-params" which can tell you what the required route parameters are for a given handler.