Added GDAL prototypes for raster support

Refs #23804.
Added cpl error codes to errcheck functions

GDAL raster methods return different error codes from the vector
API.
Added raster support for GDAL Driver class

Based on Daniel Wiesmann's work. Refs #23804.
Tweaked fix for refs #23946; thanks Claude.
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 "{} {}".
Fixed typo in docs/ref/request-response.txt.
Refs #18586 -- Split up model_inheritance.ModelInheritanceTest
Converted recently refactored templates tests to SimpleTestCase.

These test methods don't need DB setup/teardown.

Refs #23768 and b872134b.
Documented a current limitation of multiple table annotation; refs #10060.
Fixed a typo in aggregation docs.
Fixed typo in aggregation docs link.