Add username to user

A user can now login with a username or email.

@houndci 
I was having a little difficulty with this section. The case sensitive for the username and email were not working properly. I hacked it together this way so no matter what the user entered it would be downcase and then when they signed back in, they could have uppercase but still be allowed in.