Update test_plotting to use ContextTextCase.

Also, the test class in this file was named badly.  Fix that.
Bump version number to `0.4.0-dev`
Add __getitem__ and __len__ to client Distribution.
Merge pull request #426 from enthought/feature/bump-version-to-0.4.0-dev

Bump version number to `0.4.0-dev`
Fix iopubwatcher to work under Python 3.
Merge pull request #429 from enthought/bugfix/fix-iopubwatcher-for-py3

Fix iopubwatcher to work under Python 3.
Add grid_shape pre/postcondition checks.
Correct a grid_shape creation path where ndistdims == 1.

Now when the number of distributed dimensions is one, and there are
fewer elements than the number of engines. Then distributed dimension
will be distributed across 1 engine per element.

Previously it was distributed across all engines, but since in this case
there are fewer elements than engines, some engines were left with empty
distarrays.
Fix small bugs in normalize_grid_shape and make_grid_shape
More descriptive error message for postcondition check.
Bug in make grid_shape
Handle an error in `localarray.__getitem__` sooner.
Properly set Distribution.targets and .comm
Merge pull request #425 from enthought/feature/update-plotting-test

Update test_plotting to use ContextTextCase.
Merge pull request #428 from enthought/feature/client-distribution-getitem-and-len

Add __getitem__ and __len__ to client Distribution.
Remove obsolet test empty distarray test.
Correct mean reduction tests.
properly set targets in Distribution.from_shape
Correct targets on which distarray ufuncs are called.
Correct Random stuff to use the comm from its distribution.