Generalize `from_distarray` to take a dict as well.

Now, this method will take an object with a `__distarray__` method that returns a dict, or it will just take a bare dict (provided this is a distbuffer dict as defined by the distributed array protocol).
Add tests for the dict form of `from_distarray`.
Rename a test.
Merge branch 'feature/generalize-from_distarray' into feature/add-flat-file-io
Add basic flat-file IO and tests.
Move the details of file writing to `format.py`.
Fill in save and load implementations not using pickle.

Much of this is copied from or adapted from Numpy code.
Add a blank line.
Add and tweak some docstrings.
Remove unused imports.
Add a couple of comments about copied functions.
Add a module docstring describing the .dap format.
Edit a docstring.

Pluralize!
Separate basic testing and coverage testing in makefile targets.

This makes `coverage` an optional dependency.

`make test` tests without coverage.

`make test_with_coverage` does the obvious.

.travis.yml updated to use `make test_with_coverage`.
Add missing `comm` argument to LocalArray constructor.

Segfaults otherwise...
Refactor test_umath...

to make a client and context per-testclass rather than at the module level.
Changes report target to coverage_report
Marks all targets as .PHONY
Merge pull request #143 from enthought/feature/refactor-test-targets

Separate basic testing and coverage testing in makefile targets.
Test against `Mapping` instead of `dict`.