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":""}
-->

I agree with that. Saying "I know this fails, but can potentially be fixed in the future" is better than "i know this fails *now*, and that's how blaze will behave forever"