Made it possible to change an application's label in its configuration.

Fixed #21683.
Enforced unicity of app labels.

Fixed #21679.
Renamed AppConfig.setup to ready.

Thanks Jannis and Marc for the feedback.

Fixed #21717.
Fixed #21714 -- Moved logging configuration to global setup()

Thanks Aymeric Augustin for the report and the review.
Fixed #21484 -- Documented that SQL logging does not include "framework level" queries.
Fixed #21581 -- Fixed a number of issues with collectstatic.

When STATIC_ROOT wasn't set, collectstatic --clear would delete
every files within the current directory and its descendants.

This patch makes the following changes:

Prevent collectstatic from running if STATIC_ROOT isn't set.

Fixed an issue that prevented collectstatic from displaying the
destination directory.

Changed the warning header to notify when the command is run
in dry-run mode.
Django sees more than 1mm hits per hour

Disqus regularly does 40-50k/s
Properly assigned app_label to GIS test models.

Used abstract inheritance to cut down on code repetition.
Fixed a few issues in previous commit.
Readded field unadvertantly removed in fedfd5030
Fixed #21206 -- Fixed test discovery without labels

Added test to verify an empty label performs discovery on the current
working directory.
Removed unused function in test_runner tests

This was used for python 2.6 and unittest2 compatibility. It was
forgotten when the code that used it was removed.
Documented unicity rules in INSTALLED_APPS.

Refs #12288, #21679.
Wiped get_commands() cache when INSTALLED_APPS changes.

Refs #21018, #21688.
Fixed #21018 -- Reversed precedence order for management commands.
Several small whitespace fixes for styleguide/flake8 violations
Adjusted previous commit for Python 3.
Updated release notes on app_label.

Django determines automatically which application models belong to,
provided the application can be imported without importing models.
Prevented calling setup() inside catch_warnings

When django.setup() (and then configure_logging) is called inside
catch_warnings, logging setup is negatively affected (notably
warnings.showwarning definition).
Fix typo in 0ce945a67151acf2c58bc35a47f4c3d45ff30085.

Thanks to Loic for the report.