Partitions

Does a few things

1.  Sets up an abstraction around "paritionables"
2.  Hooks in an h5py backend to this, using the chunk/split expression system