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
Fixed #23620 -- Used more specific assertions in the Django test suite.
Fixed #18523 -- Added stream-like API to HttpResponse.

Added getvalue() to HttpResponse to return the content of the response,
along with a few other methods to partially match io.IOBase.

Thanks Claude Paroz for the suggestion and Nick Sanford for review.
Refactored URLValidator tests by moving URLs to text files.
Fixed #21281 -- Made override_settings act at class level when used as a TestCase decorator.
Fixed spelling mistake in docs/ref/request-response.txt
Fixed #23300 -- Made assertTemplateUsed throw an error on responses not fetched using the test client.

Thanks zags for the report and bmispelon for the patch.
Changed docstrings in admindocs/utils to comply to PEP 257
Fixed #5405 -- Added admindocs support for reStructured text in model docstrings

Thanks elvard and gkmngrgn for work on the patch and Markus H. for review.