Example: Process simulated seismic volume.

This PR provides an example for DistArray, namely the processing of a synthetic seismic volume from an HDF5 file.

The file `create_volume.py`, which does not use DistArray, creates an HDF5 file, containing a 3D array, which is intended to resemble a seismic volume. I have tried to make the data look somewhat interesting.

The file `load_volume.py` is the substantive part of this example. Namely, it is a DistArray program for manipulating the data created by the first program.

This loads the dataset, takes three slices of the volume, and creates matplotlib plots of them, then calculates various per-trace statistics, and then applies two different filters (a 3-point average, and a 3-point maximum) to each trace. The 3-point average result is then sliced and plotted, and saved as both `.dnpy` files and as a new `.hdf5` file. It can also compare the results from DistArray operations to that of normal numpy operations on the full array.

The comment is intended to note that the `if False` branch does not use DistArray to create the HDF5 file, but it is faster to do it that way. (Not sure why.) I made the normal branch do things the distarray way. I don't know there is a typo, but perhaps it is confusing.

But should we actually show both ways of doing this? (I kind of forgot that I left this in.) If I reduced this to be just the distarray way, then it would be less confusing.