User management + auth

Adds basic user management, as well as support for contributors and contributor types. Progress on #13, #9, and #14.
Should it return user or should it just return a boolean value for success/fail in saving the user to the db?