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.

Shouldn't there also be a comparison with `valueDesc` to check the end-to-end parse and write functionality? Or have I missed the point of this test?
`expectResult(jsonAsString(value), valueDesc);`