Reworked the AuthenticationBackend

Reworked the AuthenticationBackend. The check for users to be existent in
the Devhub database, shouldn't be in the LdapBackend. Now, this is moved
to a BackendImpl, which is supplied with a AuthenticationProvider, for
example the LdapAuthenticationProvider.

The AuthenticationProvider interface contains of three methods
(authenticate, fetch (User) and synchronize (User).

The LdapAuthenticationProvider is heavily based on the existing
LdapBackend, but also provides a caching mechanism for when there are
issues connecting the LDAP server. When connection fails, the backend
checks against a cached (salted) password stored in the database. This
might be useful in the labwork, when we want Devhub to be available even
if the LDAP server is down. The LDAP properties are moved to the config
file so that these attributes can easily be changed.

Furthermore in this commit is a BasicAuthenticationProvider. This one
doesn't use LDAP but rather checks passwords against the database (again,
salted). This might be useful when other universities want to get started
with Devhub without LDAP. There isn't any mechanism to add/register users
however.

Changes to be committed:
	modified:   src/main/java/nl/tudelft/ewi/devhub/server/Config.java
	modified:   src/main/java/nl/tudelft/ewi/devhub/server/DevhubModule.java
	modified:   src/main/java/nl/tudelft/ewi/devhub/server/backend/AuthenticationBackend.java
	new file:   src/main/java/nl/tudelft/ewi/devhub/server/backend/AuthenticationBackendImpl.java
	new file:   src/main/java/nl/tudelft/ewi/devhub/server/backend/AuthenticationProvider.java
	new file:   src/main/java/nl/tudelft/ewi/devhub/server/backend/BasicAuthenticationProvider.java
	new file:   src/main/java/nl/tudelft/ewi/devhub/server/backend/LdapAuthenticationProvider.java
	modified:   src/main/java/nl/tudelft/ewi/devhub/server/database/entities/User.java
	modified:   src/main/resources/changelog.xml
	modified:   src/main/resources/config.properties
HighlightJS preset based on file ext
Switched to BCrypt for password hashing
Merge pull request #47 from JWGmeligMeyling/branch-select-2

Branch selection & pagination
Merge pull request #48 from JWGmeligMeyling/ldap-cache

Reworked the AuthenticationBackend
Merge pull request #50 from JWGmeligMeyling/highlight-file-ext

HighlightJS preset based on file ext
Merge branch 'master' into mocked-server