Throw an exception if there's multiple moderations for the same object.

There's no sensible default behaviour, so you'll need to override
filter_moderated_objects to define what bevahiour you want. What if one
moderation approves an object, and the other rejects it? What if one is
still pending?

Either way, the old code simply picked one moderation at random, and that's
just broken.
Refactor model tests to reduce duplicated code.

Most of the tests for custom user models were just copied and pasted from
standard user models, with minor changes. Now all tests are shared between
both. There shouldn't be any important difference in what's actually tested.
Merge branch 'improve_multiple_mods_handling'

Conflicts:
	tests/tests/unit/models.py