Adds support for validating a user against the database

This commit adds a custom UserDetailsService that validates passwords
against the applications database.