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.

#L68-100: If `ledger.isClosed()`, then `json[jss::closed]` will be true. If `!ledger.isClosed() && !bFull`, then `json[jss::closed]` will be false. But if `!ledger.isClosed() && bFull`, then `json[jss::closed]` will be undefined. 

Is this intentional?