style(di): make consistent use of type annotations for injection

Where possible, removed the Inject attributes and favored using type
annotations. The 2.0 injector will pick these up and they won't be in
the way of other platforms that may wish to use this router with an
alternate di implementation.