Simplified Query.build_lookup()
Fixed #23750 -- Allowed core.checks.register to be used as a function
Fixed spelling errors in docs.
Raised SuspiciousFileOperation in safe_join.

Added a test for the condition safe_join is designed to prevent.

Previously, a generic ValueError was raised. It was impossible to tell
an intentional exception raised to implement safe_join's contract from
an unintentional exception caused by incorrect inputs or unexpected
conditions. That resulted in bizarre exception catching patterns, which
this patch removes.

Since safe_join is a private API and since the change is unlikely to
create security issues for users who use it anyway -- at worst, an
uncaught SuspiciousFileOperation exception will bubble up -- it isn't
documented.
Fixed #23788 -- Used new JavaScript support in recent gettext

JavaScript string extraction support has been added in gettext
0.18.3.
Thanks Aymeric Augustin for the review.
Removed import forgotten in previous commit.
Normalized opening a file and decoding its content.

`io.open` is required on Python 2.7. Just `open` would work on Python 3.
Improved Query.names_to_path docstring
Fixed #22967 -- Made Model._do_update consistent

Made _do_update behave more strictly according to its docs,
including a corner case when specific concurent updates are
executed and select_on_save is set.
Removed extra enumerate() from Query.setup_joins()
Fixed #23730 -- Moved support for SimpleCookie HIGHEST_PROTOCOL pickling to http.cookie.

This fix is necessary for Python 3.5 compatibility (refs #23763).

Thanks Berker Peksag for review.
Remove Field.get_validator_unique_lookup_type()

Usage of this method was removed pre 1.0 (c2ba59fc).
Fixed #23775 -- Added docs for --bisect and --pair runtests options.

Thanks Baptiste Mispelon for review.
Removed return from __init__.

__init__ isn't allowed to return anything other than None and it isn't
common practice to include a return statement.
Fixed #23774 -- Clarified QuerySet.order_by() and related models.
Fixed #23795 -- Fixed a regression in custom form fields

Custom form fields having a `queryset` attribute but no
`limit_choices_to` could no longer be used in ModelForms.

Refs #2445.

Thanks to artscoop for the report.
Fixed #16358 - Made memcache backend delete old value on a failure to set.

Default Memcached configuration allows for a maximum object of 1MB and
will fail to set the key if it is too large. The key will be deleted from
memcached if it fails to be set. This is needed to avoid an issue with
cache_db session backend using the old value stored in memcached, instead
of the newer value stored in the database.
Fixed #23806 -- Added a test case for settings.DISALLOWED_USER_AGENTS.
Fixed flake8 warning.
Removed thread customizations of six which are now built-in.