Issue #18408: Fix _Py_DisplaySourceLine()

Report _Py_FindSourceFile() error, so the error is cleared;
and clear io.open(filename) exception on failure.
Issue #18408: add more assertions on PyErr_Occurred() in ceval.c to detect bugs
earlier
Issue #18408: Fix show_warning(), clear also the exception raised by
_Py_DisplaySourceLine()

For example, _PyGC_DumpShutdownStats() calls PyErr_WarnExplicitFormat() while
the import machinery does not work anymore, _Py_DisplaySourceLine() fails when
trying to import the io module.
Issue #18471: Fix typo in heapq documentation (reported by Fran?ois Pinard).
Closes #18471: Fix typo in heapq documentation (reported by Fran?ois Pinard).
check the return value of new_string() (closes #18470)
merge 3.3 (closes #18470)
move declaration to top of block
merge 3.3
Also remove a (broken) leaker test for the code removed in issue #18393.
Issue #17778: Fix test discovery for test_multiprocessing. (Patch by
Zachary Ware.)
Issue #17778: Fix test discovery for test_multiprocessing. (Patch by
Zachary Ware.)
Closes #18475: add unittest.main() to test_email/test_inversions.

Patch by Vajrasky Kok.
Merge: Closes #18475: add unittest.main() to test_email/test_inversions.
Issue #18457: Fixed saving of formulas and complex numbers in Tools/demo/ss1.py.
Useed context managers for file I/O.
Removed out-of-dated code and misleading comments.
Issue #18457: Fixed saving of formulas and complex numbers in Tools/demo/ss1.py.
Useed context managers for file I/O.
Removed out-of-dated code and misleading comments.
Issue #18448: Fix a typo in Tools/demo/eiffel.py.
Issue #18448: Fix a typo in Tools/demo/eiffel.py.
Issue #18408: Fix fileio_read() on _PyBytes_Resize() failure

bytes is NULL on _PyBytes_Resize() failure
Issue #18408: Fix cjkcodecs decoders, add a new MBERR_EXCEPTION constant to
notify exceptions raised by the _PyUnicodeWriter API