Fixed #21099 - Skip DistinctOnTests unless backend can_distinct_on_fields
Merge pull request #1622 from manfre/ticket-21099

Fixed #21099 - Skip DistinctOnTests unless backend can_distinct_on_field...
Fixed a couple of typos in GeoDjango docs.
Fixed #21095 -- Documented new requirement for dates lookups.

Day, month, and week_day lookups now require time zone definitions in the database.
Fixed #20844 -- Made AdminEmailHandler respect LOGGING 'formatter' setting.
Fixed #12288 -- Validated that app names in INSTALLED_APPS are unique
Documentation -- added instructions on working with pull requests

Since non-core contributors are asked to review patches, instructions
on working with pull requests were added to the Working with Git and
GitHub page (based on the existing instructions in the core
committers page).
Fixed #21094 -- Updated reuseable apps tutorial to use pip for installation.

Thanks ylb415 at gmail.com for the suggestion.
Fixed #21100 -- Noted that Create/UpdateViews.fields is new in 1.6

Thanks AndrewIngram for the suggestion.
Fixed #21101 -- Updated urlize documentation to mention email addresses
Fixed #21060 -- Refactored admin's autodiscover method to make it reusable.

We want to be able to use it for instance for discovering `tasks.py` modules
inside the INSTALLED_APPS.

This commit therefore moves the logic to `autodiscover_modules` method in
django.utils.module_loading.
Fixed #21097 - Added DatabaseFeature.can_introspect_autofield
Added tests for double-pickling a QuerySet

Refs #21102.
Revert "Fixed #12288 -- Validated that app names in INSTALLED_APPS are unique"

This reverts commit c1ec08998d1b690855d5e69a1f4d9d2f01d44ae6.

There are backwards compatability concerns with this.
Fixed #20950 -- Instantiate OrderedDict() only when needed

The use of OrderedDict (even an empty one) was surprisingly slow. By
initializing OrderedDict only when needed it is possible to save
non-trivial amount of computing time (Model.save() is around 30% faster
for example).

This commit targetted sql.Query only, there are likely other places
which could use similar optimizations.
Removed an import * that was masking importing stuff from the wrong location
Merge branch 'master' of https://github.com/django/django
REmoved some unused imports
Delayed initialization of Selenium webdrivers.

If setUpClass throws an exception (in this case "Address already in use" if the
super call can't find any open port to bind too) tearDownClass is not called.
This results in open browser windows from the webdriver, hence we only construct
it once we are sure there is no code afterwards which could error out.
Fixed error handling in 3c5775d36f7e431d9691829a78580873111cb714 for non-operational webdrivers.