Mapping.asEagerSingleton() creates instance immediately and always returns it

- made sure the injection only happens once
- Provider.providesResolved() so the mapping can know if injection should be done
- in tests refactored how to check if methods where called (Invokes), to remove duplicate and unreadable test code
- Scope attaches caught Error when not able to auto create Mapping for type
Provider.providesResolved() added doc comment
Mapping.asSingleton(lazy:Boolean=true)
test for Mapping.asSingleton() can also be used the eager way