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.~~

Tested on staging (@arobecke  and I hammered it).
do you think

```
0 if @last_count > 0 || age > timeout
timeout - age
```

is better?