provider as defined in spec: invokeProvider supports functions that expect a Resolver instance

- this implementation will not support resolver as functions in this regard,
  because it would have to many implications on type safety
~ renamed ResolverMock to ResolverDummy, as it has no implementation
   see http://martinfowler.com/articles/mocksArentStubs.html#TheDifferenceBetweenMocksAndStubs
provider as defined in spec: invokeProvider supports functions zero arguments

- improved and corrected some of the tests
- special provider functions for special tests, instead of reusing one function that has conditions
provider as defined in spec: invokeProvider supports ProviderZero

+ bringing provider to an OO-level again
provider as defined in spec: invokeProvider supports all Providing implementations