Used a more translator-friendly format in admin sites.py
Refactored INSTALLED_APPS overrides.

* Introduced [un]set_installed_apps to handle changes to the
  INSTALLED_APPS setting.
* Refactored [un]set_available_apps to share its implementation
  with [un]set_installed_apps.
* Implemented a receiver to clear some app-related caches.
* Removed test_missing_app as it is basically impossible to reproduce
  this situation with public methods of the new app cache.
Added modify_settings to alter settings containing lists of values.
Dropped AppCache._empty, _with_app and _without_app.

It's now easier to achieve the same effect with modify_settings or
override_settings.
Imported override_settings from its new location.
Avoided loading repeatedly the same models module.
Renamed two tests so they actually run.
Fixed override_settings when set_available_apps raises an exception.

Previously, this would corrupt the settings, because __exit__ isn't
called when __enter__raises an exception.