Fixes issue #416.

Checks array dtypes before reducing, and if reducing a boolean array,
coerces to MPI-friendly dtypes accordingly.  Affects `min`, `max`, and
`sum`.
Use assert_array_equal and assert_allclose.
Merge pull request #477 from enthought/bugfix/416

Fixes issue #416