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 utilities to alter settings containing lists of values.
Dropped AppCache._empty test utility.

It's now easier to achieve the same effect with override_settings.
Dropped AppCache._without_app test utility.

It's now easier to achieve the same effect with override_list_settings.
strengthen set_installed_apps
Imported override_settings from its new location.
Improved test isolation by resetting various caches.

Specifically attempted to reset properly all caches that store the
result of app_cache.get_app_configs() when INSTALLED_APPS changes.

Removed TransRealMixin which was an ad-hoc implementation of the general
mechanism provided by the setting_changed signal.