Accounts refactor

The goal of this refactor is to get accounts to successfully "build" (`manage.py syncdb` returns no errors). We also want to meet the following requirements
* users may pass through several stages: first be a short-termer, then come as a full-time trainee, and eventually become a TA. we should be able to manage all these different roles under the same login, without having to manually recreate or merge data
* permissions and groups should be able to be granularly based on the profile(s) the user has.
* users should login with their email, not username (requires a custom django User)

**Main Changes**
* implement `AbstractBaseUser` as a custom `User` that takes a user's email as the identification token
* added a new abstract class `Profile` which is has a One-to-One relationship with a `UserAccount`—a profile stores additional information related to a User
* `TrainingAssistant` and `Trainee` now extend `Profile`
* `ShortTermer` and `HospitalityGuest` also now extend `Profile` and have been moved to new respective modules. Eventually we will build additional functionality around managing short-termers and LSM hospitality guests. In the future, other modules may also extend `Profile` to create roles. 

**Todos**
- [x] implement `AbstractBaseUser` for email login
- [x] hash and salt: on by default in Django's auth
- [x] one user account can have all profiles simultaneously
- [x] working login page
- [x] `syncdb` without errors
- [x] generate test data (fixture)
- [ ] test suite