WIP: Trying to fix a bug in getLV.  For now it's introducing more bugs.

Conflicts:
	haskell/DEVLOG.md
	haskell/lvish/Control/LVish/SchedIdempotent.hs
Fix the previous fix for issue #55
Temp: Disable some tests.  Passes all on single threaded.  Failures on multithreaded.
Commit 26082c1360c3fe94f82880c1c50760f98cb960af which was supposed to fix #28,
introduced a nasty bug with two execs in a row.  This fixes that bug.

We are still seeing some deadlock failures on multiple threads.
Oops, previous commit had a debugging aide turned on
Export the Backoff utils.  Fix up the debugging read of the final answer MVar.
Switch back to using asyncs for worker threads.  Fixes issue #61.

We still have test failures in parallel, but the exceptions
seem like they are well contained so as to not screw up the test harness.
Sometimes all pass, sometimes I see problems in v9e, v9f1, v9g, v8d, i3c.
Spurious deadlocks and timeouts, all.
Reactivate StressTests.  Tweak it so that it includes a raw test as well.
minor: turn stresstest back on for addremovetests.  Deadlock when I try it for v8d.
minor: tweak the async version to set the logger
minor: fix a bug in where setLogger happens.
minor: tweak to effect signatures
WIP: Continuing working on switching to asyncs, and now switching the Logger
to use a different quiescence-detection mode.

In particular, this commit dumps the [known-unsafe] WaitTids method.
This commit also drops old code for forking workers with forkWithExceptions,
which was now confirmed to cause major problems in the testing framework.

With the loss of WaitTids, it was possible to push through a refactor:
  * logger field is no longer maybe
  * initLogger gets folded into Sched.new

Unfortunately, closing the logger hangs with the new WaitNum method.  It needs
to be debugged; it's now spinning in a backoff loop.  Warning: this WIP commit
includes a bunch of junk debugging messages marked with TEMP:.
Minor: finish ripping out WaitTids
minor refactor: pull out the coordinator thread to a top level def
BUGFIX for printLoop. It wasn't polling shutdownFlag enough.
Oops, putting the scheduler chatter through the logger causes problems.
And it wasn't meant to go there anyway.
WIP: minor fixes.  We have a significant problem when dbgScheduling is
turned on and dbg messages below level 4 are enabled, because some
of these are launched before/after all workers are running, and thus the WaitNum
strategy will be broken.
WIP: Fix one egregious bug in WaitNum.  AddRemoveTests v3 works on one thread, can deadlock on multiple still.
Identified new bug (issue #70): the final continuation of the main worker
thread is getting duplicated.

This causes deadlock, because the final putMVar can only go through once.