Fix a performance issue when calling CredentialProviders::DefaultProvider#credential. Using nil check instead of raise rescue exception for control flow, because using exception is super slow when stack trace is reasonably deep.
Introduce Provider#set? to credential providers' interface and let Provider#credentials method continue to raise MissingCredentialsError when credentials are not set. This way we can make Provider's public interface backwards-compatible.
Merge pull request #478 from ThoughtWorksStudios/master

Fix a performance issue when calling CredentialProviders::DefaultProvider#credentials