Add username to user

A user can now login with a username or email.

@houndci 
Redundant `self` detected.