Add an IpclusterTestCase...

that sets up and tears down clients.
Ditch `more_setUp` and `more_tearDown`.

Make inheritors use super, as is more common.
Remove more* methods from base TestCases.

Make the setUp and tearDown methods classmethods.

Also update tests to match.
Change errmsg to indicate an exact number of engines are needed.

If we could make a context over a subset of engines, we could do that in this test baseclass and only a "> #engines" would be required.
Add a CommNullPasser metaclass to testing.py...

that applies the `comm_null_passes` decorator to every method in a class.

Also, rearrange testing.py a bit and remove the old usages of `@comm_null_passes`.
Remove a couple of unused imports.
Change the error message back.

Some tests still break with the wrong number of engines.
Apply Mark's fix to dv.clear.
Merge branch 'master' into feature/improve-testing

Conflicts:
	distarray/tests/test_client.py
	distarray/tests/test_distributed_io.py
Merge branch 'master' into feature/improve-testing

Conflicts:
	distarray/tests/test_client.py
Rearrange imports.
Add a comment about the purpose of `comm_null_passes`.
Merge pull request #203 from enthought/feature/improve-testing

Improve testing
Changes to reduce functions to support dtype kwargs.
Add tests for reduce functions kwargs.

Also speeds up some slow tests.
PEP8 imports in client.py
Raise NotImplementedError for out and axis kwargs.