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.
Get rid of ripple::RPC::New namespace
Change Output to be a generic std::function.
Remove unused coroutine includes and types.
Simplify LedgerData.cpp.
Add a comment to ledger/Ledger.h.
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
Refactor out a version of lookupLedger returning Status.
Configuration for yielding RPC server.
[fold] [windows] JsonObject.cpp
[fold] [windows] RPCHandler.h
Simplify uniform initialization in one place.
[fold] Now RPC requests correctly run on the job queue if we aren't using coroutines.