Re-add exception catching

The problem was that PyCXX wraps all methods with try-catch blocks.
Since PyCXX generates the module method table at runtime, it is
impossible in C/C++ to wrap the methods individually. Having one
universal wrapper function is impossible with the Py_InitModule*()
signature, since there is no way the universal wrapper function could
figure out which function to call. This is the reason why PyCXX
eventually settled for bypassing Py_InitModule*() and generating the
module __dict__ explicitly. This thus relies on implementation
specific details which breaks the compatiblity with PyPy.

When taking the module definition out of PyCXX, I forgot to re-add
these try-catch blocks. Adding them by hand to every method is indeed
not elegant. However, since the module definition is now a compile-time
problem (as it should be), a MACRO is the perfect solution. So there
are two new MACROs in CXX/Extensions.hxx: CXX_WRAPPED(fun) and
CXX_WRAPPED_KEYWORDS(fun), which define a function CXXfun() which calls
fun() inside a try-catch block. These MACROs should be invoked prior
to the PyMethodDef method table, where the CXX* wrapped functions
should be used.

This adds back exceptions handling, keeps the changes to the source
code minimal, results in much faster method calls, and is 100%
compatible with the official Python C-API and thus with PyPy.