Converted several threads to run in the monad. Added a lot of useful combinators for working with the monad. Now the monad includes the name of the thread. Some debugging messages are disabled pending converting other threads.
This adds the Assistant monad, and an AssistantData structure. So far, none of the assistant's threads run in the monad yet.