Fixed #22073 - Ensure CreateTable operation handles backwards migration correctly when M2M fields are present
Fixed #21188 -- Introduced subclasses for to-be-removed-in-django-XX warnings

Thanks Anssi Kääriäinen for the idea and Simon Charette for the
review.
Avoided changing raw DeprecationWarning filter behavior

Refs #21188. Now pure Python DeprecationWarning visibility should
be back to Python defaults.
Added test about error filterwarnings

Refs #20083.
Avoided modifying current environment in admin_scripts tests
Fixed #21092 -- Ensured admin_scripts tests are run with warnings off
Improved compatibility in admin_scripts tests

Environment keys/values need to use native strings on some
plateforms. Thanks anubhav joshi for detecting the issue and
helping shaping the patch.
Fix bad conflict detection during makemigrations
Fixed #22199: Bad max_length deconstruction for FileField
Merge pull request #2315 from bendavis78/issues/22073

Fixed #22073 - Ensure CreateTable operation handles backwards migration correctly when M2M fields are present
Fixed #22183: Through M2Ms now correctly handled
Fixed #21843: Remove explicit ID column setting in test
4 flake8 warning fixes
Reorganized the database test settings

Change database test settings from "TEST_"-prefixed entries in the
database settings dictionary to setting in a dictionary that is itself
an entry "TEST" in the database settings.

Refs #21775

Thanks Josh Smeaton for review.
Fix weird autodetector error
Corrected a few missed references to old test settings
Fixed test breakage following test-settings enhancements
Avoided leaking warning filters.
Removed obsolete hack to run template tests.
Fixed the last fix for database test settings to work with Python3.