Add a `save_hdf5` function and a test for it.

Also add a simple `load_hdf5` that works, but won't work predictably until I merge the `fromndarray` fix.
Add hdf5 and h5py dependencies to travis.
Move h5py import into HDF test.
Add test for client-side save_hdf5.
Add 3d, multi-dist test for hdf5 save.
Close files after testing.
If no h5py, skip the h5py tests.
Clarify some docstrings.
Fix a docstring.
Raise helpful error messages if h5py not available.

Also, do a client-side check for h5py in save_hdf5, though it isn't needed until engine-side.
Document optional h5py dependency.
Import from `local` directly.

To prepare for merge to master.
Merge branch 'master' into feature/add-hdf5-io

Conflicts:
	distarray/client.py
Split HDF5 tests into their own TestCase.
Use context managers to close hdf5 files.
Add an `import_or_skip` function to testing.

I had some trouble implementing this as a decorator, but this simple function works.
Rename some methods and use `import_or_skip`.
Fix some typos.

Thanks, @kwmsmith.
Add mode option to `save_hdf5`, rename `dataset`->`key`.

Also make tests more robust:

1) Use random-ish filenames for test output files.
2) Remove temporary test files after tests.

All the client tests and MPI tests run without error separately, but when I run them one after the other, there's still an error somewhere.
Be explicit about the write-modes I'm testing.