Initial work to support table stats and change XML.

This adds a non-backward compatible change to the XML
metadata format for tables. This is unfortunate but necessary
as the existing setup was not extensible, as we didn't have a
table root element.

Also changed the types in C api to be consistent with the Python
C api.
Fixed bug in reading integer types.
Improved XML schema and metadata handling.
Added testing framework for command line tools.
Merge branch 'table-xml' of github.com:jeromekelleher/wormtable into table-xml
Fixed Python 2.6 test breakage.
Initial hack to test separate data file.
Added buffering.
Added new test files to distribution.
Tidied up data file handling and buffers.

Decided against attempting a proper implementation at this point. It
works very well as it is, and there are other elements of the design
that need reworking too. Not currently a priority.
Removed page size as it's no longer an issue.
Fixed the stdin handling and tests.
Tidied high level code and improved test coverage.