PeerFinder and Peers fixes:
- Fix bootcache incorrect failure on socket cancel
- Fix peer connect race on stop
- Simplify some loops
- Require boost 1.55 via static_assert
Remove unused classes
Fix clang warnings
Give pathfinding updates priority over client and RPC requests
WebSocket dispatch changes.
Don't let one connection hold a thread for too long without
having to wait for another turn
Calculate program file directories:
* Determine location of database files in Config
* Inject database directory or file path in PeerFinder and Validators
* PeerFinder and Validators will share the same sqlite file
Resolve hostnames found in the [ips] config section
Update LICENSE
Improve I/O when fetching ledgers
* negative cache for node store
* async fetch, thread pool for node store
* read barrier logic for node store
* SHAMap getMissingNodesNB (non-blocking)
* non-blocking getMissingNodes traverse
* tune caches
Release the InboundLedger lock during getMissingNodes
Don't check the node store for proposed txn nodes
Clean up ledger fetch reasons.
Don't trigger immediately when fetching historical ledgers.
Legacy Pathfinding API improvements:
* Use the cache for source/dest currencies
* Allow a search depth and initial paths to be specified in old pathfinding
Return an empty pointer from getLedgerBySeq if sequence in future
Signature canonicalization and transaction mutation fixes
Permit memos up to 1Kb.
* Overlong memos are basically treated like invalid signatures.
* Ability to clear message key.
Consolidate C++14 compatibility into new headers
Remove unused TextDiff
PeerFinder fixes:
* Fix local advertisement (was missing)
* Fix Livecache histogram display
* If no [ips] are specified, use r.ripple.com
* Use different backing stores for PeerFinder and Validator databases
Fix the ledger range we advertise to peers