Fixed #23867 -- removed DateQuerySet hacks

The .dates() queries were implemented by using custom Query, QuerySet,
and Compiler classes. Instead implement them by using expressions and
database converters APIs.
Fixed #23801 -- Added warning when max_length is used with IntegerField
Fixed #23847 -- Improved the email_check example in the auth documentation.
Fixed #23875 -- cleaned up query.get_count()
Fixed #23877 -- aggregation's subquery missed target col

Aggregation over subquery produced syntactically incorrect queries in
some cases as Django didn't ensure that source expressions of the
aggregation were present in the subquery.
Fixed #14664 -- Logged a warning if MiddlewareNotUsed is raised in DEBUG mode.
Fixed #21587 -- Raised deprecation warnings correctly.
Fixed #23923 -- Promoted Django's deprecation warnings to errors in runtests.py
Tried to fix some warnings.