Signature canonicalization and transaction mutation fixes
Pathfinding API
* Use the cache for source/dest currencies
* Allow a search depth and initial paths to be specified in old pathfinding
Declare types for memos.
Permit memos up to 1Kb.
Overlong memos are basically treated like invalid signatures.
Ability to clear message key.
Clean up ledger fetch reasons.
Don't trigger immediately when fetching historical ledgers.
[EXPERIMENTAL] 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