Includes six.py module in distarray.

Fixes all imports.  Includes six's license in docs.
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.
Added a test for create_comm_with_list.
Added tests for invalid comm creation.
Apply Mark's fix to dv.clear.
Added test for mpi_type_for_ndarray.
Added standard file metadata to new files.
Merge branch 'master' into test-mpiutils
Remove targets argument to internal methods.  Reorder targets according to MPI rank order.
Fixes comment.
Adds basic test for contexts' target attribute.
Remove target_to_rank, rank_to_target attributes on context.

Also fixes some typos; updates tests.
Merge branch 'master' into feature/improve-testing

Conflicts:
	distarray/tests/test_client.py
	distarray/tests/test_distributed_io.py
Add a `restart()` command to ipcluster.py.