Switch to custom user model (bug 558514)

This removes our usage of `django.contrib.auth.models.User` entirely, handling all our user and auth requirements with `users.models.UserProfile`.