Fixed #22248 -- Made RenameModel reversible
Removed a deprecated use of SQLCompiler as quote_name in GIS.
Fixed GeoSQLCompiler to pass itself correctly to column as_sql.
Formatted model states in autodetector tests
Cleaned up and reformatted autodetector tests
Simplified caching of password hashers.

load_hashers cached its result regardless of its password_hashers
argument which required fragile cache invalidation. Remove that
argument in favor of @override_settings and triggering cache
invalidation with a signal.
Simplified caching of get_default_timezone().
Simplified caching of templatetags modules.
Simplified caching of template context processors.
Removed usage of a global variable.
Simplified caching of the default exception reporter filter.

Also simplified the logic under the assumption that a false-ish object
won't have an exception_reporter_filter attribute.
Simplified caching of supported languages.
Replaced caching of a property with @cached_property.
Fixed #23871 -- Removed promotion of MySQL warnings to errors in DEBUG mode.
Fixed GIS tests to again skip without error when GEOS is not installed.
Fixed #23872 -- Removed sensitivity of migrations tests to CWD.
Fixed #21794 -- Removed deprecation warning for abstract models outside an app.
Fixed #23410 -- Avoided unnecessary rollbacks in related apps when migrating backwards.
Fixed #23873 -- Improved GIS error message when GEOS is not installed.

Thanks Claude for writing the patch.
Added another migration-executor test to avoid regressions.