Database Refactor

This represents a 'complete enough' refactor of the backend databases, primarily focused on HDF5 with some corresponding SQLite fixes (thanks @rwcarlsen!).  I am opening this now in the interest of keeping the PR as small as possible.  

This represents a number of steps forward:

* Our own type identification system
* HDF5 backend now queryable
* Ability to SHA1 hash variable length types
* HDF5 backend now stores variable length types in a sparse, on-disk bidirectional hash map whose keys are SHA1
* Schema for tables are now of a guaranteed size
* bools in HDF5 
* supped up tests for HDF5 and query backend (non-existent before)
* and probably others!

This is a minimally viable product and is meant to expand over time.