Refactored confirmation prompts in createdb, create_pages and collecttemplates.
Added settings for modeltranslation integration.

If USE_MODELTRANSLATION is set to true, modeltranslation is inserted
into installed apps and content translation code becomes active.
The setting is visible in templates and controls modeltranslation
autodiscovery (so content translation may be used without i18n).

Other than turning the content translation on, you should also change
patterns to i18n_patterns in the urls.py generated with mezzanine_project.

This commit also introduces content translation testing infrastructure:
a test runner that automatically adds translation columns to the test
database and a base test case with some settings preprocessing.

The test runner (and the createdb additons from a later commit) rely on
some proposed modeltranslation changes:
    https://github.com/deschler/django-modeltranslation/pull/276.

An important tests concern is to check, if introducing the new code
does not cause any side-effects when USE_MODELTRANSLATION is false.
All tests for that should go into the NoContentTranslation test case.

TODO: MODELTRANSLATION_MIGRATIONS_IGNORE is not implemented.
Registered most Mezzanine models for translation.

Excluding Keyword and Settings as they need some special handling,
but including the abstract Displayable as it's instantiated for
sitemap generation.

Base classes need to be registered for translation before their
descendants, so the installed apps order needed to be modifed a bit.

Having a test pointing out unregistered textual fields should make
maintaining the integration easier -- most such new fields should be
made translatable (add them to the appropriate translation.py).
Patched processing of fields derived from translated fields.

Fields that need to be generated for all languages are:
* Slugged.slug,
* MetaData.description,
* Displayable.short_url,
* Page.titles.
Moreover, when generating description one needs to be careful not to
use existing translated description.

Factored out two helpers that may be useful for similar tasks in user
code. The disable_fallbacks() context prevents getting value from a
default language when one for the active one is missing, useful when
you need to know if a value in the current language is available.
The for_all_languages() function executes a function with each of the
available languages activated in turn.

The for_all_languages() function and the disable_fallbacks() manager
are used outside of USE_MODELTRANSLATION conditions, so tests with
enabled and disabled content translation are needed for them.
Model.save() should not use any more queries with content translation
than without it, query counts in both save performance tests should be
updated in unison.

TODO: Propose light changes to trans_null upstream.
TODO: Investigate Page.save() queries count on master.
Integrated modeltranslation tabbed admins.

Based all admins of models registered for translation on appropriate
modeltranslation admins and included scripts needed for displaying
translations as tabs in the base admin template.

You may derive your admins from mezzanine.core.TranslationModelAdmin
even if you don't use content translation (at the moment).

Minor fixes needed were:
* rectifying extra copies of translation fields in forms (inserted in
  PageAdmin for proper Page subclasses);
* handling PageAdminForm posts with multiple values for slug_<lang>
  instead of just a single slug value (repeating slug propagation
  for all available languages);
* making fields on inline and change lists narrower to let a couple of
  translations fit.

Narrower fields also give a cleaner layout with vanilla admin in some
places (e.g. Cartridge Sale inline).

It would be nice to display just one translation for a whole inline
and control which one is displayed with the main language switch / tabs.
However, this would require a specific script for Mezzanine's dynamic,
sortable inlines. There's a sketch of such a solution on the branch:
modeltranslation/feature/hide-inactive-untabbed.
Automated modeltranslation database setup; added a resavemodels command.

During createdb sync_translation_fields, update_translation_fields and
resavemodels are executed, giving an out-of-the-box internationalized
project. It is most convenient to configure languages and enable
content translation in settings before running createdb.

With some fields, one cannot always rely on translation fallbacks, as
they don't work with filtering / lookups. For example, if you create a
new project, manually migrate and update translation fields, you won't
be able to browse most pages in any non-default language until you give
them a chance to generate translated slugs.

The new command is an opt-in, to apply for it add resavemodels_command
to the models class. By default, with modeltranslation enabled, Slugged,
MetaData and Page (and their subclasses) are resaved with the command.

TODO: The post_syncdb infrastructure is risky (the signal is outdated,
      moreover the initial setup should only be done after the inital
      migration). Needs changes on master.
Implemented keywords translation.

Keyword assignments are intended to be the same for every language,
thus only Keyword.title and keywords_string (on concrete subclasses
of MetaData) are made translatable.
The latter is recomputed on change for all languages as with other
derived attributes.

KeywordsWidget allows entering keywords in the active language only,
so a new KeywordAdmin is exposed separately to make it possible to
translate keywords.

Unused keywords are not deleted with content translation to avoid
losing their translations.
Ignore the registration test complaint about Settings for now.

Placeholder for settings translation.
First documentation sketch.