Adds support for chained param handlers

If `inheritParamHandlers` is specified in the router options, this will create a stack of param handlers as the request is executed. The handler stack is per-request, which allows routers attached in multiple places to receive the appropriate param handlers. Usage of `inheritParamHandlers` implies `mergeParams`.