Adds validation for the login form
-Authentication token is now using the PasswordEncoder found in the application context for generating its hash form

-Changes the implementation of the PasswordEncoder to BCryptPasswordEncoder

-Adds a factory for AuthenticationToken instances. The factory takes care of resolving the password encoder and the time-to-live for the tokens.

-Adds tests for the AuthenticationToken and enhances the UserAuthenticationIntegrationTest