Add models for reputations

Add ReputationMetric model that keeps track of the reputation
score values for each individual model.

Add signals to apply reputation adjustments for audits at the
time that they are actually written to the database.

Make instance model nullable for ReputationMetric and Audit because
some auditables, like User, don't require an instance.

Use audit.save() explicitly over Manager.bulk_create() in order to
make the pre_save signals work.
Refactor Tests

Tests now have more helper functions to cherrypick how you'd
like to build up your test environment.
Add tests for Reputations