Pytablesv4
Refactor of PyTables support to allow multiple table types.

This commit allows for support of multiple table types in a pytables hdf file,
      supporting the existing infrastructure in a backwards compatible manner (LegacyTable)
      while extending to a slightly modified format to support AppendableTables and future support of WORMTables

AppendableTables are implementations of the current table format with two enhancements:
         - mixed dtype support
         - writing routines in cython for enhanced performance

WORMTables (not implemented - but pretty straightforward)
        these tables can support a fixed 'table' (meaning not-appendable), that is searchable via queries
        this would have greatly enhanced write performance compared with AppendableTables, and a similar read performance profile

In addition, the tables allow for arbitrary axes to be indexed (e.g. you could save a panel that allows indexing on major_axis,minor_axis AND items),
        so all dimensions are queryable (currently only major/minor axes allow this query)

all tests pass (with 1 exception)
        a frame table round-trip - will fail on a comparison of a sorted index of the frame vs the index of the table (which is as written), not sure why this should be the case?
