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

* Generic functions to add entries to both object models.
* Add Json::Value into JsonObjects.
* 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