Fix bugs with Contexts and Test base classes

Fixes bug related to running MPI client tests when IPython cluster is not running.

Due to the class hierarchy in place, the MPI client test classes would only work if there was an available IPython.parallel cluster up and running.

This clearly separates the client base classes and fixes the bug so that MPI client tests will all run and work regardless of IPython's availability.