Fixed #22496: Data migrations get transactions again!
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.