While in Python 2.7, it was recommended to explicitly check for
errors, and only do the save exception/restore exception dance, modern
Python documentation says to always do this, unconditionally. For
example, in
https://docs.python.org/3.11/extending/newtypes.html#finalization-and-de-allocation.
So let's switch to this, and to the more proper deallocation using the
tp_free member - not because these are subclassable types, but because
the initialisation is also done using tp_alloc, so consistency++.