SingletonProvider instead of additional state in Mapping

- all Provider implementation are immutable, makes testing simple
- replaced SimpleType with Instance, that allows to distinct comparing instances when comparing them in tests and to test if an instance was created
- ProviderMock returns Instance instead of undefined, providingResolved() can be configurable