Support evolving unique_together.

Django-Evolution has always recorded unique_together, but never
supported evolving it. If a project changed this value, it would be
ignored and never applied to the database, yet would be recorded.

This introduces a new ChangeMeta mutation that accepts changing a Meta
property. Currently, only unique_together is supported. The
unique_together property can be set to any value, and Django Evolution
will attempt to drop any old indexes it can find (if any exist) from the
old signature, and set up indexes for the new signature.

Projects should add a ChangeMeta for any models that have a
unique_together, to ensure that the proper value is used and recorded.
Move much of our Django support capability detection into support.py.

There are a few places where we introspect some part of Django to see
what level of support we have for something. Instead of duplicating
these or spreading them around, they've been moved to a new support.py
file.
Change how we generate new and default index names.

Django Evolution has historically made some decisions around index names
that weren't quite correct. It used to assume that existing and new
index names were named the same way, and this logic was tied to the
Django version. That mean that if you upgraded from an older version of
Django to a newer one, it would assume new defaults.

Now that Django Evolution can introspect the database for index names,
we no longer need to guess index names everywhere. We can assume them in
most cases. We also can pick our own names for brand new indexes. So,
get_new_index_name no longer has to do Django version checks, and can
instead generate a safe, unique name. This helps with naming conflicts
for new indexes on some databases.

The unit tests still need to guess a name, though. This is because the
tables are created in a transaction, and indexes can't be looked up yet.
MySQL and SQLite (and their Django database backend modules) have the
same format for default index names, but Postgres has its own format.
So, some of the old guessing logic lives on in a new function,
get_default_index_name. This is used only for unit tests, and it's a bit
smarter and more compact than the old logic.

The end result of this change is that new index names are more
predictable, future-proof, and less likely to conflict with any existing
index names in the database.