WIP: compute on HDF5 with PyTables

closes #361

leaving projections the way i've implemented them for now:

see scopatz's description of the memory layout.

* https://github.com/PyTables/PyTables/issues/233
* https://github.com/PyTables/proposal/blob/master/column-wise-pytables.rst

- [x] sort based on pytables indexes
- [x] should sort always work? e.g., pytables only allows sorting on a single indexed column whereas numpy and pandas allow multiple columns
    - [x] either let users know they need to index, instead of reading into memory or just always work

punting to pytables on `Sort` for now so it will raise if you to sort on a column that doesn't have a completely sorted index

<!---
@huboard:{"order":374.8125,"milestone_order":487,"custom_state":""}
-->

My preference isn't to test that errors like this occur.  If the world improves we shouldn't raise errors.  My preferred mechanism for something like this is an `xfail` decorator.  This isn't a strong preference though, I'm mostly saying this to continue a conversation.