Rewriting in a functional style.
Cleaner useParameterHook implementation.
Adding withDependency & withArguments.
Lifetimes.
Moving some functions into the inject function scope.

Moving other functions around.
Errors.
Wrapping local keys & values into localLookup.
Added function registrations.

Renamed inject.use/call to value/factory.
Better registration validation.
Reorganising.
Factory function results are properly disposed.
Can setup a registration for multiple keys.
Last registration used when resolving instead of first.

Can resolve everything registered for a particular key.
Adding inject.fallback, for specifying a fallback resolve function.
Adding TypeScript definition with some doco.
Fixing inject.func lifetime & dependency issues for keys with registrations.
inject.fallback can take in a parent resolve.
Adding methods for registering for multiple keys/types at the same time.
Updating typescript definition with forKey/forType & fallback changes.