New command line LedgerTool. (RIPD-243)

* Retrieve and process summary or full ledgers.
* Search using arbitrary criteria (any Python function).
* Search using arbitrary formats (any Python function).
* Caches ledgers as .gz files to avoid repeated server requests.
* Handles ledger numbers, ranges, and special names like validated or closed.
Convert rvalue to an lvalue. (RIPD-494)
* The rvalue gets destructed as soon as "rc" is constructed.
Update npm tests & config to pass in Windows. (RIPD-209)
* Extend timeout for WebSocket test.
* Windows networking doesn't like connecting to 0.0.0.0. Use 127.0.0.1
* Additional command line options in config. Can potentially be used to run rippled in a debugger.
Compile git tags now include name and branch. (RIPD-493)
Speed-up path element operations & comparisons
Use std::map to optimize lookup performance
[FOLD] address Vinnie's comment
[FOLD] Improve linecache performance:
Based on an idea by David, use a proxy object to calculate the hash
value of an Account outside the lock and improve the performance of
comparison operations during inserts and lookups. Also use emplace
instead of a find/insert pair of calls.