Fix issue with test watchers polluting other test cases.

renamed TestCase to WatchedTestCase for clarity.

make code thread safe.