Create User model with basic tests
Add validations to User model
Improve validation for User.email
  Take into account character casing in the validation
  Add index to database
  Use a callback to downcase email before saving to database
Add password attributes to User model
Add tests for authentication
Add another test for email ; Rewrite before_save block in User model