improved interface/API:

~ LazyValueProvider.type now throws an error instead of returning null,
   when the type is not known yet
~ ProvidingSameInstance extends ProvidingTyped (just because it makes sense ;))