refactor(routerViewPort): move child injector and component knowledge

In order to facilllitate using the router with other frameworks, we
needed to move the knowledge of child injectors and providers out of the
component loading step. Now, a factory function for creating a child
router is passed to the routerViewPort. It can then decided how it pass
that along to the component it is creating. For Angular 2.0, we just
happen to use child injectors. We also moved the Angular 2-specific
executionContext hookup out of the component loader and into the
routerViewPort. This allows the framework-specific view port greater
flexibility in setting up the required data structure. Previously that
ng 2.0 component injector details had leaked out into the loading step.