Add User Model

WORK IN PROGRESS
Use `self.encrypt` instead of `User.encrypt`.