Change Output to be a generic std::function.
Wrap Output in a coroutine that periodically yields.
Allow Json::Value and JsonObject to interoperate.

* Generic functions to add entries to either object model.
* Write Json::Value to string incrementally.
Allow the Ledger to generically output to both Json models.
New generic Ledger RPC handler.
Send output incrementally in StreamHandlerImp.
Refactor away RPCHandler::doRpcCommand