feat(di): add metadata to Key
feat(ElementInjector): implement ElementInjector
feat(ElementInjector): add support for "special" objects