Add sign-in, sign-up, and sign-out

A user must sign-up with both a username and email address, but has the option after sign-up to sign-in using either his or her email or username.