Marked some tests as expected failures on Oracle/cx_Oracle<=5.1.3/Python3

Refs #23843 which is really a cx_Oracle bug
Fixed #23768 -- Rewrote template tests as unit tests.
Fixed "no such test method" error in template_tests.

Without this patch, you couldn't run an individual test
case in template_tests.

Refs #23768
Fixed #23935 -- Converted decimals to fixed point in utils.numberformat.format
Fixed #23950 -- Prevented calling deconstruct on classes in MigrationWriter.
Fixed #20392 -- Added TestCase.setUpTestData()

Each TestCase is also now wrapped in a class-wide transaction.
Refactored some tests to take advantage of refs #20392.
Fixed #23939 -- Moved session verification out of SessionAuthenticationMiddleware.

Thanks andrewbadr for the report and Carl Meyer for the review.
Added a test to verify headers set by default middleware; refs #23939.
Removed redundant numbered parameters from str.format().

Since Python 2.7 and 3.1, "{0} {1}" is equivalent to "{} {}".
Cleaned up the django.template namespace.

Since this module 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.
Added Django template backend.
Looked up the default template engine in the list of all engines.
Removed private API django.template.loader.find_template.
Removed some uses of global APIs from django.template.loader.
Supported multiple template engines in get_template and select_template.