Models

@wesleykendall when you get a chance, take a look at Django-issue.
@wesokes in case you are interested as well.

It's so much more flexible (I took some configuration inspiration from the new animal).

If this looks good, I'll add a special ModelAssertion subclass to handle generating issues for individual records when they are problematic.