Fix logic in HTTP/S server:

These bugs do not affect production code since callers do not invoke
`write` multiple times, but these would become a problem in the future.

* Access to Peer::write_queue_ is synchronized correctly.
* Remove unsafe access to deleted container element.
Make three ErrorCode functions generic.
Simplify LedgerData.cpp.
Add a comment to ledger/Ledger.h.
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.
* Get rid of ripple::RPC::New namespace
Allow the Ledger to generically output to both Json models.
New generic Ledger RPC handler.
Send output incrementally in ServerHandlerImp.
Refactor away RPCHandler::doRpcCommand
Refactor out a version of lookupLedger returning Status.
Configuration for yielding RPC server.