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.

I don't know it it's intentional - but this is exactly the same behavior as was there before I started.  (Indeed, I originally changed the behavior and then reverted that change to be as unchanging as possible...)

Here we go:  

https://github.com/ripple/rippled/blob/develop/src/ripple/app/ledger/Ledger.cpp#L1154