Add a test that checks for missing migrations

If there are any outstanding model changes that have no migrations, the
tests will fail. Migrations *must* be up-to-date before any code changes
are accepted, or before a new version is released. If they are not, it
causes havoc for all users.

The bulk of the test code is taken from the Django 1.7 `makemigrations`
command, and the South `schemamigration` command.
Fix wagtailimage migrations not using AUTH_USER_MODEL

This caused a false-positive when South checked for changes to models
and an AUTH_USER_MODEL was being used.
Move RegisterDecorator model into wagtail.tests.models

For some reason, registering it via a decorator as part of a function
call caused it to register itself in the wagtail.wagtailsnippets app,
which caused a false positive in the missing migrations check. Moving it
to the wagtail.tests.models file means it is registered in the correct
location.
Made missing migration error message more verbose
Add missing migration for wagtail.tests

It only appears in Python 3.x for some reason.
Merge branch 'feature/migration-tests' of https://github.com/takeflight/wagtail into takeflight-feature/migration-tests

Conflicts:
	wagtail/wagtailsnippets/tests.py
reorganise migrations to remove duplicate, and add migration for RegisterFunction which was previously masked due to duplicate test name
Merge branch 'takeflight-feature/migration-tests'
Merge branch 'master' of github.com:torchbox/wagtail