Add username and additional user information

A user can now login with a username or email.
Created user profile page which display basic information about the
user.