Streaming rpc

Here it is, the streaming RPC changelist!

I spent a long time cleaning it up into as few independent changelists as possible, and I hope it's readable for you.

Why not replace these 4 lines with
```
runCoroutine(RPC::Coroutine(
    [this, detach] (Yield const& y) { processSession (detach, y); }),
        m_jobQueue);
````