Fix a bug in HasReverseBinding that produced a compile error in some cases.
Split out the allocator part of InjectorStorage into a separate FixedSizeAllocator class.
Factor common code in individual bindings in component_storage.defn.h into a new constructObject() method in InjectorStorage. Now the allocator can be private.
First part of the refactoring of ComponentStorage, mostly moving logic into InjectorStorage.
Inline trivial methods of ComponentStorage into component.defn.h.
Remove the multibindingDeps vector from ComponentStorage. Each MultibindingData stores the deps anyway.
Rename typeRegistry->bindings, typeRegistryForMultibindings->multibindings throughout.
Rename singleton->object throughout, plus other minor comment fixes.
Rename BindAssistedFactoryHelper->InvokeAssistedFactory, remove BindAssistedFactory.
Add test to ensure that objects in the injector are destroyed once (and only once).
Fix a bug that caused an assertion error when using addMultibinding().
Minor code simplifications in InjectorStorage.
When a lambda used as provider returns a pointer to a derived class with virtual methods, let the compiler emit a warning if there's no virtual destructor.
Rename createObjectVector->createMultibindingVector for clarity.
Switch to the lowercase_with_underscores style for variables and fields (before some used the lowerCamel case instead).