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)
Make sure we update mTNByID when we replace the root
[WIP] Beast: Improve parser API
[WIP] ripple: Tidy up names
[FOLD] ripple: add stub for eof on read
[FOLD] ripple: renaming
[FOLD] beast: parser unit test
[FOLD] beast: de-inline members
[FOLD] ripple: http server changes
[FOLD] beast: rename to basic_parser
[FOLD] beast: rename to message
[FOLD] beast: move parser to its own class and file
[FOLD] beast: remove unused get
[FOLD] beast: move headers to its own file
[FOLD] beast: Use headers in message
[FOLD] beast: make headers streamable
[WIP] beast: add streambuf, body