Basic inspecting_client and tests

Rather use addCleanup, since threadleaks can occur if something goes wrong in setUp(). Even better IMHO, make InspectingClient support start()/stop()/join() and just call use start_thread_with_cleanup().