changed: use crowd REST client API
gitignore /target, /.project, /.classpath and /.settings
refactored: use package-private constants to access crowd config keys
changed: use crowd rest-client to check for user authentication
refactored: use immutable list builder to build extensions
refactored: don't use shared logger instance in CrowdAuthenticator
added: user provider for crowd
fixed: obey the API for doGetUserDetails if a user does not exist
added: ExternalGroupsProvider from crowd
changed: improve error messages if the crowd client fails
added: crowd realm
changed: realm and config as server extensions for the crowd plugin
refactored: delete CrowdHelper; don't use shared logger
added: missing copyright header
refactored: use explicit configuration instead of generic properties
changed: improved logging for REST client configuration
fixed: don't log failed user-logins on ERROR
fixed: direct group memberships are a subset of nested group
memberships; no need to look up direct memberships as well
added: log successful connection test
changed: adapt CrowdConfigurationTest to new API