Add waitable_executor
Validators work (RIPD-703):

This replaces the experimental validators module with foundational
code to implement a new system for tracking validators, validations and
the UNL. The code is turned off by default, in BeastConfig.h

* Remove obsolete public Manager interfaces
* Remove obsolete database methods
* Remove obsolete ChosenList concept
* Remove obsolete code
* Add missing includes
* Tidy up STValidation.h
* Move factory function to Validators::make_Manager
* Add Connection object for tracking STValidations
Simplify RipplePublicKey:

This implements the bare minimum necessary to store a 33 byte public
key and use it in ordered containers. It is an efficient and well
defined alternative to RippleAddress when the caller only needs
a node public key.
Remove unused and obsolete Ripple identifiers and tidy up:

These identifiers were part of a failed set of classes to replace
the functionality combined into RippleAddress. They are not used
and therefore can be removed.

* Remove RippleAccountPrivateKey
* Remove RippleAccountPublicKey
* Remove RippleAccountID
* Remove RipplePrivateKey
* Remove RipplePublicKeyHash
* Remove RippleLedgerHash
* Remove unused withCheck argument
* Remove CryptoIdentifier
* Remove IdentifierStorage
* Remove IdentifierType
* Remove SimpleIdentifier
* Add missing include
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.
Add appveyor
Remove 'Proof of Work' code
Tidy up usage of std::begin, std::end