Deprecated dirs argument to override TEMPLATE_DIRS.

Cancels 2f0566fa. Refs #4278.
Introduced a template engine class.

Moved Django templates loading infrastructure there.
Removed unused API get_template_loaders.

It was introduced in a recent refactoring so this isn't an issue.

Then renamed _get_template_loaders to get_template_loaders.
Moved template loaders management in Engine.

Passed the engine instance to loaders. This is a prerequisite for
looking up configuration on the engine instance instead of global
settings.

This is backwards incompatible for custom template loaders that override
__init__. However the documentation doesn't talk about __init__ and the
way to pass arguments to custom template loaders isn't specified. I'm
considering it a private API.
Removed dependency of template loaders on Django settings.
Added to each Context a reference to the Engine.

It's only available during the rendering.
Move compile_string into the Engine class.
Moved make_origin into the Engine class.
Encapsulated ALLOWED_INCLUDE_ROOTS in Engine.
Encapsulated TEMPLATE_CONTEXT_PROCESSORS in Engine.

Since RequestContext doesn't know its Engine until it's passed to
Template.render() -- and cannot without breaking a widely used public
API -- an elaborate hack is required to apply context processors.
Encapsulated TEMPLATE_STRING_IF_INVALID in Engine.
Encapsulated TEMPLATE_DEBUG in Engine.
Removed direct references to template-related settings.
Fixed #23900 -- Added missing imports in code example.

The Preventing header injection example included
classes that are not imported.

Thanks to Collin Anderson and Berker Peksağ for the
reviews.
Better migration docs for get_query_set -> get_queryset

This way they won't need to fix things again when get_query_set disappears
Removed unused variable django.http.request.absolute_http_url_re
Simplified get_version() in django/__init__.py

Thanks Luke Plant for the report.
Moved release note for refs #21281 from "deprecation" to "backwards incompatible".
Fixed #23894 -- Made deconstruct methods favor kwargs over args