daemonise worker threads so tests can be terminated with TERM signal

testcode currently does not terminate on TERM signal. This makes it difficult to stop when run from the command line, and makes running concurrent tests from a CI system (e.g. buildbot) problematic.

The suggested changes daemonises the threads and removes the blocking `.join()` call on the master so it can attend to signals. 

A ctrl-c should now  terminate the master and all worker threads, albeit quite abruptly which may sometimes result in a traceback from depending on the progress of the thread.