Complete removal of PyCXX

This PR completes the removal of PyCXX from matplotlib following on from PR #3646.

There are 2 commits.  The first converts the _tri module, the last module to use PyCXX, to use the Python/C API instead.  I've followed the lead of #3646 so that we have some code consistency in terms of separate wrapper files, code layout, use of the same exception-catching macros, etc.

The second commit removes the PyCXX source code, the relevant sections of the setup scripts, and a few other places where it was mentioned.

It is always nice to write a PR that is such a net reduction in code!
`_tri_wrapper.h` is included by both `_tri.cpp` and `_tri_wrapper.cpp`.  I agonised about this tight-coupling for a while and came up with a solution that isn't ideal but I thought was safest for python object ref counting.  But I could be persuaded to change it.  My thoughts are as follows.

Ideally `_tri.h/cpp` should not know anything about the wrapper code `_tri_wrapper.h/cpp`.  But both `TriContourGenerator` and `TrapezoidMapTriFinder` need a `Triangulation`, and are passed one in their constructors.  From the python side we pass in a `PyTriangulation*` of course, so I had the option of either passing this directly through to e.g. `TriContourGenerator`, or passing through just the underlying C++ `Triangulation*`.  From a functional point of view only the latter is required, but then `TriContourGenerator` would not hold a reference to the python `PyTriangulation` object, so if all of its other references were released the `Triangulation*` would be deleted and we'd get a segfault when `TriContourGenerator` tried to access it.

Aha, having written that I've realised there is a much better solution.  If I store a `PyTriangulation*` within the `PyTriContourGenerator` wrapper, then that can be responsible for the reference counting, and I only need to pass in the C++ `Triangulation*` to `TriContourGenerator`.  The wrapper header file can go, the coupling is reduced.  Do you prefer that?