add user model with password/authentication

through hartl chapter 6