Converting dynamic_injector from using Symbols to using Types.

The intent of this is to cut down on the number of mirrors needed for DI- it still uses mirrors for construction but does not use symbols for lookups at all.

This actually brings the code closer to the StaticInjector, it may be possible to do some further refactoring to bring them a bit closer together.