Kill the threads

This removes all threading, resulting in a simpler codebase, and should fix #10, #15, and #3.

Instead, the `Watch` loops through subscriptions (greedily, every 50ms for now), and triggers `Consume` / `Reveive` / `Deliver` at each iteration.

`Consume` is changed to pop from the queue (polling) instead of subscribing to receive events.

This has the indirect benefit of fixing detection of new/deleted subscriptions.

Further work will be needed to make it efficient, but there are no more thread safety issue ... as there are no more threads.

Being tested on staging.
Does this method return length of time before `run` is next called? If so then maybe `time_to_next_run` would be better? Or maybe `milliseconds_to_next_run`?