Scope.specify() with pluggable ProviderStrategies

~ Scope.providerStrategy is accessible
~ DefaultProviderStrategy.providerFor() invokes strategies first
  - first one that returns a provider wins
  - Provider instances are returned directly
  + add(ProviderStrategy) allows adding a single one
~ Invokes is no longer using weak keys,
    because tests failed sometimes because the weak keys were "dropped"