Add missing include in beast header
Add pending_handlers
Clean up Overlay and PeerFinder sources:
* Tidy up identifiers and declarations
* Merge PeerFinder headers into one file
* Merge handout classes and functions into one file
Refactor PeerFinder:
Previously, the PeerFinder manager constructed with a Callback object
provided by the owner which was used to perform operations like connecting,
disconnecting, and sending messages. This made it difficult to change the
overlay code because a single call into the PeerFinder could cause both
OverlayImpl and PeerImp to be re-entered one or more times, sometimes while
holding a recursive mutex. This change eliminates the callback by changing
PeerFinder functions to return values indicating the action the caller should
take.

As a result of this change the PeerFinder no longer needs its own dedicated
thread. OverlayImpl is changed to call into PeerFinder on a timer to perform
periodic activities. Furthermore the Checker class used to perform connectivity
checks has been refactored. It no longer uses an abstract base class, in order
to not type-erase the handler passed to async_connect (ensuring compatibility
with coroutines). To allow unit tests that don't need a network, the Logic
class is now templated on the Checker type. Currently the Manager provides its
own io_service. However, this can easily be changed so that the io_service is
provided upon construction.

Summary
* Remove unused SiteFiles dependency injection
* Remove Callback and update signatures for public APIs
* Remove obsolete functions
* Move timer to overlay
* Steps toward a shared io_service
* Templated, simplified Checker
* Tidy up Checker declaration
Load PeerFinder database in Stoppable::onPrepare:
OverlayImpl::onStart calls into PeerFinder before PeerFinder::Manager::onStart,
causing tests to sometimes fail and the application to intermittently not start.
The order of calls to Stoppable::onStart is implementation defined and not
predictable.

This changes PeerFinder to load the database in Stoppable::onPrepare, before
threads are launched. In general, creation and initialization of resources that
are shared between classes should happen in onPrepare rather than onStart,
to solve this problem.
Whitespace (almost) only style changes.

* Restrict to 80-columns.
* Add spaces before () in subroutine calls.
* Add braces {} in a few places when needed for style.
Extract credit and accountCurrency functions from Pathfinder.

* Remove free functions from Pathfinder.h and .cpp into their own files.
* Rename these functions to correspond to style guidelines.
Make Pathfinder a private class.

* Conceal the class Pathfinder behind two free functions.
* Get rid of pointless use of deprecated RippleAddress.
Get rid of wrong, useless "ID" in variable names.

* Serves no useful purpose.
* Correct terminology would be "Hash" anyway.
Move types and functions to being local to Pathfinder.cpp
Replace 4-tuple path_LQ_t with struct PathRank.
AccountCandidates moves from being a pair to a struct.
CostedPath moves from being a pair to a struct.
PathCost moves from being a pair to a struct.
Document Pathfinder.

* Also make documentary changes to code.
* Please scrutinize this carefully.
Replace CurrencyAccount with Issue in PathRequest.cpp
Replace copies with references in Pathfinder.
Split Pathfinder's source issue into Account, Currency.

* Reverts a part of a previous change.
Split Pathfinder::findPaths up.
New FindPaths class caches results over all currencies.