Improved custom user model support

Improves support for custom user models by allowing custom models that don't have a **username** field by making use of *User.USERNAME_FIELD* and *get_username()*.

I previously looked at including some monkey patching for ensuring support in Django 1.4, but it looks like support for 1.4 was removed in https://github.com/rossp/django-helpdesk/commit/61f49786c08ef4a4ff264ad63397a6f3c588921e (since it uses get_user_model() which is 1.5+)