the SECRET_KEY is not a hash
Made nested deconstruction support both forms of deconstruct()

Nested deconstruction should (silently) handle Field.deconstruct() as
well as other arbitrary deconstructable objects. This allows having a
field in the deconstruction of another field.
Merge pull request #2699 from graingert/patch-3

the SECRET_KEY is not a hash
Added omitted documentation for ArrayField__len.
Fix a test dependent on json ordering.
Fixed #22679 -- Fixed empty tuple serialization in MigrationWriter.

Thanks rockallite.wulf for the report.
Fixed #22667 -- Replaced leader/follower terminology with primary/replica
Fixed #20816 -- Added hints about Django middleware ordering

Thanks gthb Trac user for the report, kolypto StackOverflow
user for the initial list and Tim Graham for the review.
Fixed #21598 -- cleaned up template loader overrides in tests

- Template loader overriding is managed with contexts.
- The test loader is a class (function based loaders entered deprecation timeline
  in 1.4).
- Template loader overrider that overrides with test loader added.
Fixed #21357 -- Fixed test client session initialization.

The test client will now create a session when it is first accessed
if no session already exists.
Fixed #22602 -- Improved code coverage of makemigrations command tests.
Fixed tuple serialization test.

Thanks to rockallite for the report.
Made runtests.py use 'set_installed_apps' API

This will also trigger the ready method of any tested application,
which was not run before.
Applied unicode_literals to makemessages command

This also fixes #22686 as some sort of side-effect.