Convert Cython wrapping to use Cython's C++ wrapping support.

Removes code to work around wrapping C++ code, now that Cython's
C++ support is mature.

clang "version 4.0 (tags/Apple/clang-421.0.57) (based on LLVM 3.1svn)"
has a problem with dealing with the output of Cython 0.17.3 when
destructors of typedef'd objects are called explicitly.
We work around this by having Cython wrap the classes
directly rather than via their typedef names.  This is slightly less
than ideal, but not a major inconvenience.