Extend command-line tools to accept file name on command line.

Extends the tools so that the file name may be specified on the command
line, instead of being passed as standard input.

The previous behavior of reading from standard input is preserved in
the case in which no file is given on the command line, so this is
fully backwards-compatible.
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.