Add tryWaitDelayIO
Fix performance bug in implThread

The following sequence would fork an unnecessary timer thread:

    delay <- newDelay 1000000
    threadDelay 1100000
    updateDelay delay 100000000
      -- Delay already rang, so forking a timer thread for this would
      -- produce a thread that would wait a while, then set a TVar that
      -- is already set.
Replace example with simpler one, and move it to the bottom
implThread doc fixup
Special case `newDelay 0`
More documentation (compare vs System.Timeout)
Remove commented-out Eq and Ord instances for TimeoutThread

If TimeoutThread were an exported module, we would probably want these
instances, but since this is internal and we don't use those instances,
they're just distracting.