Started adding unit tests.

Added a very basic XML parsing unit test, which is run in the
standard autoconf manner. Also ported the existing regression
tests to be run from the autoconf test harness as well.

Part of this meant pulling most of the code into a temporary
library so that it can be re-used by all the binaries, including
the unit tests. Hopefully this won't cause any major issues - it's
all libtool-based, so should be portable, and is statically linked
to the resulting binary so needs no installation.
Added first simple tests for middle.
Added dependency on Boost C++ utility libraries.
Added test for postgres middle.
Updated README for new Boost dependency and tests.
Fix typo in temporary path.
D'oh, need to be superuser before creating tablespaces.
Renamed C files to C++ in preparation for destaticification.

No actual functionality changes should have been made. However, it has been a long time since C++ was really forward-compatible from C, so there was a bunch of syntax and type stuff that needed changing.
Made `middle` structure use virtual functions. Have not yet touched the output, or rest of the statics yet.
fix merge conflict