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.

This is actually new code, but it fixes a terrible problem I realized while reading it.

If we're in debug mode, we print EVERY response to the journal - no matter how large!

This seems crazy to me, so I chop everything to 10k.  If you really need those 40M ledger dumps in your log, you can just go in and change this number.