Basic User Model including password machinery
User model