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.
Test against `Mapping` instead of `dict`.
Merge pull request #138 from enthought/feature/generalize-from_distarray

Generalize `from_distarray` to take a dict or an object