Validation timing fixes:
* Log whether consensus built a ledger we already had or were acquiring
* Don't trigger an acquire for a validation for a ledger we might be building
* When we finish building a ledger, try to accept that ledger
* If we cannot accept a built ledger, check held validations
* Correctly set isCurrent for untrusted validations
* Add appropriate logging

This fixes a race condition that could cause spurious and expensive
ledger fetches across the network and delayed recognition of
fully-validated ledger.
Add comments to LedgerHistory
Set version to 0.24.0-rc1
Pathfinding dispatch improvements
* Simplify decision whether to update a path
* Prevent pathfinding threads from blocking each other
Set version to 0.24.0-rc2
Set version to 0.24.0
Update RPM spec file to version 0.24.0
Cleanup nodestore backend classes:
* Add README.md
* Add missing std::move calls
* Refactor visitAll in backend
Rename Feature to Amendment:
* Added a README.md describing an Amendment
Simplify and improve performance of STAmount::createHumanCurrency
Add documentation to SHAMap
Clean up of TransactionSign and friends.
New strConcat concatenates strings in O(n) time.

* Accepts std::string and char const*.
* Also accepts numbers, bools and chars.
* New ripple::toString function augments std::to_string to handle
  bools and chars.
Reduce number of async fetches
Improved performance monitoring of NodeStore backends:
* Add multi-sample interface to LoadMonitor
* Instrument fetch operations and completions for reporting in server_info