Add parallel `load_hdf5` methods to Context and DenseLocalArray

The client-side `load_hdf5` no longer sits on `fromndarray`; it takes an iterable of `dim_data` structures, one-per-process, and each of these tells a process how to load (part of) an HDF5 file into a `DenseLocalArray`.

This could fairly-easily be made to take the convenience `dist` structure instead of an iterable of `dim_data`s.  Should this option be a separate method, or should `load_hdf5` take either?

This is on top of PR #151.  The testing in this PR could be improved by integrating PR #203, but I haven't done this (since it's still open).