WIREBOX-30 bytype namespace and improvements

* Fixes bug where inject annotation containing a custom DSL with no
colons is superseded by the internal model DSL.
* Adds the bytype DSL, which allows the developer to inject based on the
type annotation instead of the name - this includes modifications to Mapping to make it pass the type annotation from arguments and properties into the DI definition.