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.
update regression test to search for contrib sql files (postgis, hstore, spatial_ref_sys) in the event that creating these extension fails. previously this was hardcoded for postgis bits to debian like system. for hstore it used to just fail outright
fix merge conflict
Fix bug in use of `strncpy()`.
Propagate exit status information from the tests out to the test harness correctly.
Changed `output_t` instances to be of class type with vtables.
remove a bit of c syntax for initializing the output_t pgsql structs function pointers
merge unstructification from mla
Removed some static variables from output-pgsql.
Made `enable_way_area` not static.
Make `s_table` not static.
Made a note that `flagsname` and `tagflags` are OK as statics, and marked them const.