def provider(provider_sym, options={}, &blk)
      provider = provider_class(provider_sym).new(options, &blk)
      provider.cred_store = cred_store.credentials_for(provider_sym)
      @providers[provider_sym] = provider
    end
def provider(provider_sym, options={}, &blk)
      provider = provider_class(provider_sym).new(options, &blk)
      provider.cred_store = cred_store.credentials_for(provider_sym)
      @providers[provider_sym] = provider
    end
Instantiate a provider and add it to the {#providers} collection
 @param provider_sym [Symbol]
 @param options [Hash] Options to be passed to provider initialization
 @yield Yields the block to the provider initializer, in case the provider
 accepts a block