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.
Fixed #14226 -- Dependency calculation for complex M2M relations.

`sort_dependencies` incorrectly interpreted 'complex' M2M relations
(with explicit through models) as dependencies for a model. This caused
circular complex M2M relations to be unserializable by dumpdata.

Thanks to aneil for the report and outofculture for initial tests.
Unneeded, Python 3 incompatible code in a75324c6 tests.
Fixed #20936 -- When logging out/ending a session, don't create a new, empty session.

Previously, when logging out, the existing session was overwritten by a
new sessionid instead of deleting the session altogether.

This behavior added overhead by creating a new session record in
whichever backend was in use: db, cache, etc.

This extra session is unnecessary at the time since no session data is
meant to be preserved when explicitly logging out.
Fixed some test models' natural_key() methods.
Completed long overdue sqlinitialdata deprecation.
Fixed #22613 -- Added formfield_for_choice_field() to the list of methods that InlineModelAdmin supports.
Fixed flake8 error.
Added 1.6.5 release note for refs #22508.
Fixed #22619 -- Corrected description of os.path.

Thanks Collin Anderson for the report.