Bump version number to `0.4.0-dev`
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
Properly set Distribution.targets and .comm