feat(Provider): Add Provider

The Provider allows for providing mock services and services with string tokens.
Services can be provided globally using di.provide or locally to an injector
instance using injector.provide