Add Flat File IO

Add `save` and `load` methods for `LocalArray`s and `DistArray`s.

`save` for a `LocalArray` writes to a flat datafile format (`.dap`) inspired by the `.npy` format from numpy.  See the module docstring on `format.py` for details.

`save` for a `DistArray` saves the `LocalArray` on each process to a file named `<filename>_<comm_rank>.dap`.  This API could probably be improved.

This PR makes use of PR #138.

Refactor `test_umath` to make `Client`s and `Context`s in setUp methods rather than once at the module level (to make tests pass).