Rearranged some file-related tests

Just moving around some tests to be more logically grouped.
Rearranged some i18n tests

Compilation/extraction tests are now properly skipped when gettext
commands are unavailable.
Fixed #21344 -- Typo in docs/ref/models/queries.txt
Mark this as a python code-block
Use `callable` instead of `six.callable`.

The `callable` builtin was added back in python 3.2
which is the minimal python3 version supported by django
at this point.
Fixed #8261 -- ModelAdmin hook for customising the "show on site" button

``ModelAdmin.view_on_site`` defines wether to show a link to the object on the
admin detail page. If ``True``, cleverness (i.e. ``Model.get_absolute_url``) is
used to get the url. If it's a callable, the callable is called with the object
as the only parameter. If ``False``, not link is displayed.

With the aim of maitaining backwards compatibility, ``True`` is the default.
Fixed a F811 warning introduced by 35db9d58d6.
Fixed #21345: Don't evaluate callable settings in the debug page.

Thanks to crass for the report.
Added some more tests for the debug page.

* Missing tests for ticket #12744
* Tests for the cleanse_setting feature (leaving out sensitive
  settings from the debug page)
Documented removal of django.core.servers.basehttp.WSGIServerException

refs 2ca00faa913754cd5860f6e1f23c8da2529c691a
Fixed #21316 -- Documented that modifying safe strings makes them unsafe.

Thanks dev@simon.net.nz for the suggestion and vijay_shanker for the patch.
Documented the limitation on sep argument to Signer

Co-Authored-By: Gavin Wahl <gwahl@fusionbox.com>
Fixed #20610: Added a message level dict to contrib.message context processor.
Fixed #21347 -- Added missing JS variable declaration.

Thanks szymon.barglowski at gmail.com for the report.
Fixed #21294 -- Clarified the logout next_page argument.

Thanks wim at go2people.nl for the report.
Fixed #21306 -- Documented lower-casing behavior of title filter.
Auto-apply initial migrations if their tables exist already.
Fixed #9722 - used pyinotify as change detection system when available

Used pyinotify (when available) to replace the "pool-every-one-second"
mechanism in `django.utils.autoreload`.

Thanks Chris Lamb and Pascal Hartig for work on the patch.
Fixed some flake8 issues
Fixed #14877 -- repeated deletion using formsets

When a formset contained deletion for an existing instance, and the
instance was already deleted, django threw an exception. A common cause for
this was resubmit of the formset.

Original patch by Trac alias olau.

In addition this commit cleaned some code in _construct_form(). This
was needed as the primary key value the user submitted wasn't converted
correctly to python value in case the primary key field was also a
related field.