modules may provide getRouter() instead of router

Modules with child routers may provide a getRouter function.
- it will be passed parent router and activation data.
- it must return a router, or a promise that resolves to a router.

Pages with Dynamic routers (server calls needed) are easier with this approach.