Add support for custom user models.
Rocket surgery on the admin:

- Move Model forms out of admin.py and into forms.py.

- Refactor how admin forms work.

    Instead of modifying fields directly, we now override .get_form()
    to return to appropriate add/change form. This allows us more
    flexibility in how the form is setup, validated, and saved.

    TODO: logic in model_save() should probably be moved to the
    respective models .save()

- Refactor bulk payouts.

    The view logic has been moved out of the admin and into to a
    class-based view. The page is now driven by forms/formsets,
    giving it proper validation, and template has been updated.

- Disable the Credit change form

    Since Credit's cannot be changed once created, the change_form
    template has been override to hide the form.