Forward-ported test and release note from f46a16614

Refs #24015.
Moved version directives to the bottom of the loaddata section.
Used the :ticket: syntax more extensively
Used https for most *.python.org links
Updated some other external links in the docs
Made model_regress unpickling test CWD-independent

Refs #24007. Thanks Tim Graham for his help with the patch.
Fixed refs #24007 test on Windows.
Added words to docs wordlist.
Added upgrade instructions for deprecated model _meta permission methods.
Fixed #2443 -- Added DurationField.

A field for storing periods of time - modeled in Python by timedelta. It
is stored in the native interval data type on PostgreSQL and as a bigint
of microseconds on other backends.

Also includes significant changes to the internals of time related maths
in expressions, including the removal of DateModifierNode.

Thanks to Tim and Josh in particular for reviews.
Correct scoping of savepoint example
Refs #2443 -- Fix Oracle tests for DurationField.

It helps if there are the correct number of microseconds in a second.
Merge pull request #3763 from dcramer/patch-2

Correct scoping of savepoint example
Simplified handling of a default value.
Renamed get_template_from_string to from_string.

The shorter name is just as explicit and, well, shorter.
Cleaned up the django.template namespace.

Since this package is going to hold both the implementation of the Django
Template Language and the infrastructure for Multiple Template Engines,
it should be untied from the DTL as much as possible within our
backwards-compatibility policy.

Only public APIs (i.e. APIs mentioned in the documentation) were left.
Imported BaseEngine from the DEP.

i18n is left aside for now.
Added initial support for loading template engines.
Added dummy template backend.
Added jinja2 template backend.