moved handler related thread creation things out of master and into Thread.Thread,
so that it's always used. In order to accomodate that, the first argument of
Thread.Thread() may be a string, in which case it's the handler name and the next arg
should be the function to run.
also cleaned up some thread starting problems that seem to have been masked by things
being in the master. should be a cleaner situation all-round.
This should result in threads actually having handlers assigned more reliably.