Use pre-provisioned clients when running the suite

* Currently hardcoded at length 3
* New client provisioned as soon as one is used
* Anything left at the end of the test run is shut down before the jvm exits
* When test is finished, client is unprovisioned asynchronously
* Shut down errors do not affect test result
* Failure to provision a client will fail the test