Fixed #22476: Couldn't alter attributes on M2Ms with through= set
Removed unused imports in makemigrations
Appeased flake8.
Reorganized backends tests.

This reduces the number of explicit vendor checks.
Simplified indexes tests.
Replaced vendor checks by three feature flags.
Split ignores_nulls_in_unique_constraints feature.

Oracle and SQL Server don't have exactly the same limitations. It's
worth treating them differently.
Added feature flags for introspection capabilities.
Fixed #22588 -- Fix RegexValidator __eq__

Compare parameters instead of re.pattern instances, and add the other
parameters to the comparison. Also add a __ne__ to make assertNotEqual
work properly.
Fixed #22563: Ignore AUTH_USER_MODEL errors in from_state
Fixed #22325: Ignore __first__ dependencies to your own app
Tests for #22325