Skip tests that need a cluster if one isn't available

There are actually quite a few tests that will run without a cluster available.  In this PR, I split a `ClientTestCase` off of `ContextTestCase` that will raise a `skipTest` if a `Client` can't be made.  Using `ClientTestCase` and `ContextTestCase`, we can run the test suite even if we don't have a cluster running, skipping all the tests that need a `Client`.

Closes #453.