fix: instantiate default providers in correct injector

When using default provider (instantiating the token), we should follow the same
policy as with regular (defined/overridden) providers. That is, instantiate in
the oldest injector where defined/overridden, respecting forced new instances
by scope annotations.

Thus each injector has to remember what scopes it forces new instance for so
that when a default provider is being instantiated later, it knows whether it
should be instantiated in the current injector or in a parent one.

Fixes #36