Refactored configuration and authentication so that API key cannot be stored in the config.properties file and so that all API classes expect an AuthenticationDetails object when instantiated (either OAuthAuthenticationDetails or ApiKeyAuthenticationDetails.