Issue #18604: Consolidated checks for GUI availability.

test_support._is_gui_available is now defined the same way on every
platform, and now includes the Windows-specific check that had been in the
Windows version of _is_gui_available and the OSX-specific check that was
in runtktests.check_tk_availability.  Also, every platform checks whether
Tk can be instantiated (if the platform-specific checks passed).
Issue 21375:  Fix possible Py_ssizet overflow in heapq.
Issue #21366: Document the fact that ``return`` in a ``finally`` clause
overrides a ``return`` in the ``try`` suite.
Add prompts to interactive example.

This makes it match the new example below, and allows Sphinx's
"hide the prompts and output" feature to work.
 - Issue #17752: Fix distutils tests when run from the installed location.
Issue #21350: Fix file.writelines() to accept arbitrary buffer objects, as advertised.
Patch by Brian Kearns.