Make transitiveClosure take a list of elements to close over
Add a function to find cycles
Check that the test requirements returned by the server don't form cycles
Support the Unpause message
Fix a bug in unpause, it wasn't updating the server so was getting into cycles
Don't offer to pause if you are already paused
Note that the time in the Server row is since the process finished
Refactor the RunTest code, make the helper not be a map but a single operation
Nub the tests that are generated
Check there are no unreachable dependencies
Fix up the pause to disable in the right circumstances
Make the client information take one row per task, and say how long ago the task started
In the test, spawn one client with multiple threads (a bit more coverage)