Fixed #23071 -- Use last migration's name in dependency to other app

Changed the autodetector to lookup the name of the other app's last
migration in the graph and use that as dependency instead of using
__latest__.
Removed usage of deprecated switch_to_*() selenium methods.
Improved patching of sys.stdout in refs #23078.
Silenced OptionParser deprecation warning in a test.
Silenced a Python 2 ImportWarning in a migrations test.
Corrected headings in migration docs.
Silenced test warning for deprecated IPAddressField.
Fixed #23094 -- Removed redundant argument in select_related() example.

Thanks thegeekofalltrades at gmail.com for the report.
Fixed #21707 -- Added helpful error message when using {{ block.super }} in base template.

Thanks mitar for the suggestion.
Fixed #23014 -- Infinite migration regression with unique/index_together.
Fixed #22849 -- Added Session.__str__()
Forward ported release notes for refs #23089.
Fixed #23088 -- Used `six` `range` type in `Paginator.page_range`.
Improved docs for GEOSGeometry.simplify()
Fixed #22827 -- clarified what each cache middleware does.

Thanks Keryn Knight for the report.
Merge pull request #2938 from dekkers/ticket_23071

Fixed #23071 -- Use last migration's name in dependency to other app
Mark initial_data as deprecated separately from syncdb. Refs #23077.
Fixed #23093: soft application detection for swapped models
Restore support for reading __latest__ for compatability
Fixed #23085: Better error message for PostGIS 1.5/bad custom fields