Fixed #17627 -- Renamed util.py files to utils.py

Thanks PaulM for the suggestion and Luke Granger-Brown and
Wiktor Kołodziej for the initial patch.
Added backwards compatability shims for util modules.

refs #17627
Fixed test failures introduced in previous commit.
Reworded a paragraph in the logging docs.
Updated examples in the docs after eade315d.
Fixed #21109 -- made db cursor error wrapping faster
Fixed #21112 -- Make sure sitemaps with no lastmod date work correctly.

Thanks to Matthias Kestenholz for the report and patch.
Added Arabic mapping to contrib/admin/static/admin/js/urlify.js
Final attempt to solve sporadic test failures.

tearDownClass is not called if setUpClass throws an exception, in our case
this means that LiveServerTestCase leaks LiveServerThread sockets if the
test happens to be skipped later on, and AdminSeleniumWebDriverTestCase
doesn't close it's already open browser window. To prevent this leakage
we catch errors where needed and manually call _tearDownClassInternal.
_tearDownClassInternal should be written as defensively as possible since
it is not allowed to make any assumptions on how far setUpClass got.

This patch should fix the sporadic "Address already in use"-errors on jenkins
and also the "This code isn't under transaction management"-error for sqlite
(also just on jenkins).

After discussion with koniiiik, jezdez, kmtracey, tos9, lifeless, nedbat and
voidspace it was decided that this is the safest approach (thanks to everyone
for their comments and help). Manually calling tearDownClass was shut down
cause we don't know how our users override our classes.

This is a private and very specialized API on purpose and should not be used
without a strong reason!

This patch partially reverts the earlier attempts to fix those issues,
namely:
	2fa0dd73b18f55d0fdd1c1d54b1d18031bfcf1ed and
	3c5775d36f7e431d9691829a78580873111cb714

Final note: If this patch breaks in a later version of Django, please be
very careful on how you fix it, you might not see test failures locally.
That said, this patch hopefully doesn't produce even more failures.
Fixed #21114 -- Migrations must not have a dependency to themselves.
Destroy selenium before live server threads.

Ensure that selenium quits before the live server thread to
prevent occasional hangs when killing the live server.
Fixed #21115 -- Fixed NameError in migrate --list command
Fixed #21024 -- Documented how to deprecate a feature.
Fixed #12568 -- no error when accessing custom field's descriptor

The SubfieldBase's descriptor caused an AttributeError when accessed
from the class. Introspection didn't like that.

Patch by Trac alias supervacuo.
Fixed #15625 -- Made message in MultiValueDictKeyError less verbose.

Thanks margieroginski for the suggestion.
Fixed #4278 -- Added a dirs parameter to a few functions to override TEMPLATE_DIRS.

* django.template.loader.get_template()
* django.template.loader.select_template()
* django.shortcuts.render()
* django.shortcuts.render_to_response()

Thanks amcnabb for the suggestion.
Fixed #21118 -- Isolated a test that uses the database.

Thanks rmboggs for the report.
Fixed #21098 -- Applied sensitive_post_parameters to MultiValueDict

Thanks simonpercivall for the report and bmispelon for the review.
Fixed #21116 -- Made usage of manage.py in docs more consistent.

Thanks daniel.quattro at gmail.com for the report.
Fixed #19414 -- Added admin registration decorator

Thanks stavros for the suggestion.