Use custom user model to allow for longer usernames

This pull request does two major things:

1) Replace any instance of django.contrib.auth.User in the code with a dynamic reference
* `settings.AUTH_USER_MODEL` for use in model definitions
* `django.contrib.auth.get_user_model()` in all other cases

2) Create a new user model in Collab's core - `core.CollabUser`
* Update the settings.py to reference the new model in AUTH_USER_MODEL
* Use south to migrate the appropriate foreign key contraints to core.collabuser

After merging this pull request, all Collab apps that utilize auth.user need to be updated to reference the new model.
* Perform the actions described in step 1 above
* South migrations make it easy to resolve foreign key constraints - `./manage.py schemamigration <appname> --auto`
* Text fixtures should not reference auth.user.  Update the fixtures to reference core.collabuser or use collab's `core/fixtures/core-test-fixtures` to provide the test users

Once all apps have been updated, executing `./manage.py migrate` should update collab and its apps to utilize the new user model.  At this point, the legacy `auth_user` table will still be present but unused.  When satisfied with the functionality of the new table, the auth_user table can be deleted.