Allow Routers to dispatch additional Routers

- RouterInterface and HandlerInterface now share a parent, RouteTargetInterface.
- A Router may now be used as the target for a Route.
- Route's handler member is not replaced by Router's target member.
- Route::getHandler() and Route::setHandler() are deprecated and alias getTarget() and setTarget()
Add safeguard against infinite routing loops
Track route depth on the Request, not on the Router.

This allows a Handler to use the top-level router and have the depth count match the depth for the current request, not the total.