Moved ServerHandler helper class to tests.

It has been only used in the builtin_servers tests since Django 1.4.
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
Fixed #22606 -- Locmemcache has_key() failed for infinite cache expiry

Refactored cache expiry logic for Locmemcache to make consistent across
all places where accessed, and correctly handle None as expiry time.
Used more precise assertions in cache tests
Fixed #22502 -- Fixed microseconds/default/form interaction

Made explicit lack of microsecond handling by built-in datetime form
fields. Used that explicitness to appropriately nix microsecond
values in bound fields. Thanks Claude Paroz for the review.
Adjusted refactoring of vendor checks.

Thanks Shai for the thorough review.
Fixed #22508 -- Avoided overwriting select_related.

Previously, known related objects overwrote related objects loaded
though select_related. This could cancel the effect of select_related
when it was used over more than one level.

Thanks boxm for the bug report and timo for bisecting the regression.
Minor cleanup in select_related_regress tests.
Fixed #21685 -- Displayed app verbose name in admindocs model index
Fixed a few release notes typos.
Link new testing tools document from main index.