Threader improvements

Threads.doWith returns a thread handle instead of waiting; new
Threads.synchronize method which waits for multiple threads; wait calls
no longer lock up the map engine.