Reintroduce invariant() as a wrapper around watch and export watch in __all__
Major bugfix: blank out new_watchers_to_run after our initial run. Failing to do so caused an infinite loop when running the version of examples/threadpool1.py that I'll be committing shortly.
Change ThreadPool to use stm.watch to handle spawning workers