Added router.getActivatableInstance

After the module is resolved for the navigation,
router.getActivatableInstance is called to determine, based on the
module, what actual instance should be activated. The default
implementation works as previously, which checks to see if the module is
a function, and if so, news it, otherwise returns the module itself.
But, this now adds a customization point for further controlling what
actually gets activated from a given module based on route info,
parameters and mapped module.