style(examples): fix examples to better use di via type annotations
refactor(componentLoading): move view factory access to the router view port

Previously, the component instantiation code was placed inside the
component loading step. This update moves that code into the
RouterViewPort. This decreases the number of dependencies that component
loading has, but it also brings an additional benefit to the routing
system. By allowing the RouterViewPort to control component
instantiation, it can optionally choose to cache components internally
in a way that could improve performance for frequently visiting pages.
This caching is not implemented as part of this update, but it's now
possible to add it in the future.
refactor(pipelineProvider): enable pipeline steps to be created through di

Previously, the PipelineProvider was manually instantiating each step in
the navigation pipeline. After a recent refactor this became a problem
since the LoadNewComponentsStep had a dependency on templating's
ComponentLoader. This was temporarily solved by having the provider push
that into the step manually, but that created a coupling between the
provider and its individual step's dependencies. As of this fix, the
provider instances each step via the injector, allowing any pipeline
step to declare it own dependencies without the provider needing to know
about them.
style(*): make lambda style consistent throughout

Removed unnecessary parenthesis surrounding single parameter lambda
expressions.