Avoided using private API get_template_from_string.
Fixed #23670 -- Prevented partial import state during module autodiscovery

Thanks kostko for the report.
Fixed #23715 -- Prevented urlize from treating a trailing ! as part of an URL

Thanks to 57even for the report.
Fixed #23738 -- Allowed migrating from NULL to NOT NULL with the same default value

Thanks to Andrey Antukh for the report.
Added a warning about direct settings manipulation in tests.

Thanks Thomas Chaumeny for the initial patch.
Fixed #23732 -- Corrected and enhanced select_related() docs.

Thanks Daniele Procida for the report and review.
Renamed SpatiaLite feature flag introduced in refs #23152.

Thanks Doug Goldstein for the suggestion.
Fixed #23468 -- Added checks for duplicate fixtures directories in loaddata.

If settings.FIXTURE_DIRS contains duplicates or a default fixture
directory (app_name/fixtures), ImproperlyConfigured is raised.

Thanks to Berker Peksag and Tim Graham for review.
Fixed #23731 -- Fixed migrations crash when adding blank GeometryFields on PostGIS.

Thanks raratiru for the report and Claude Paroz for review.
Fixed #23744 -- Fixed typo in selenium testing example.

Thanks djbug for the report.
Fixed #23376 -- Made documentation about required Storage methods
consistent.

The following methods **should** be implemented, but are not required:

 * Storage.delete()
 * Storage.exists()
 * Storage.listdir()
 * Storage.size()
 * Storage.url()

Updated documentation to reflect this fact and give a couple of examples
where some methods may not be implemented. Add a warning that not
implementing some methods will result in a partial (possibly broken)
interface.

Ticket: https://code.djangoproject.com/ticket/23376
Merge pull request #3459 from brwr/brwr/django-23376

Fixed #23376 -- Make documentation about required Storage methods consistent.
Moved CSRF docs out of contrib.
Fixed #18456 -- Added path escaping to HttpRequest.get_full_path().
Fixed #23420 - broken warning for unbound naive datetime objects

Fixed issue with warning message displayed for unbound naive datetime
objects when USE_TZ is True. Adds unit test that demonstrates the issue
(discoverable when using a custom lookup in MySQL).
Clarified custom lookups output_field documentation
Refactored URLValidator tests

Moved valid and invalid test URLs into separate text file.
Fixed #20003 -- Improved and extended URLValidator

This adds support for `user:password` in URLValidator supported URLs.

Additionally, the test suite has been improved by adding test URLs from
http://mathiasbynens.be/demo/url-regex (with a few adjustments, like
allowing local and reserved IPs).

The previous URL validation RegEx failed this test suite on 13
occasions, so I also updated the URLValidator based on
https://gist.github.com/dperini/729294 to correctly validate all URLs in
the test suite. Among other improvements, this also adds support for
IPv4 mapped IPv6 addresses like `::ffff:192.0.2.128`.