Fixed #23924 -- Made EmailMessage raise TypeError for type checks
Fixed #23338 -- Added warning when unique=True on ForeigKey

Thanks Jonathan Lindén for the initial patch, and Tim Graham
and Gabe Jackson for the suggestions.
Fixed #16731 -- Made pattern lookups work properly with F() expressions
Fixed #23910 -- Added reply_to parameter to EmailMessage

Thanks to Berker Peksag and Tim Graham for the review and suggestions.
Fixed #23894 -- Made deconstruct methods favor kwargs over args
Fixed #901 -- Added Model.refresh_from_db() method

Thanks to github aliases dbrgn, carljm, slurms, dfunckt, and timgraham
for reviews.
Fixed #23853 -- Added Join class to replace JoinInfo

Also removed Query.join_map. This structure was used to speed up join
reuse calculation. Initial benchmarking shows that this isn't actually
needed. If there are use cases where the removal has real-world
performance implications, it should be relatively straightforward to
reintroduce it as map {alias: [Join-like objects]}.
Fixed #23728 -- Added the --exit option to makemigrations.

If no changes that need migrations are found, `makemigrations --exit`
exits with error code 1.
Added 1.9/removed 1.5 on Python version support table.
Fixed #23925 -- Allowed settings.AUTHENTICATION_BACKENDS to reference import aliases
Fixed #4444 - Made runserver suppress 'broken pipe' errors

One handler in WSGIServer, to catch the error when raised from
SocketServer.BaseServer's finish_request, and one in WSGIRequestHandler
(by creating a subclass of ServerHandler), to catch the error when
raised in wsgiref.handlers.BaseHandler's finish_response.