Add user authentication to User model

Emails and passwords are now correctly validated by the User model upon log in.