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.
Have you considered adding the id_field to this? Not a blocker, just looks like you're trying to make it look like the constructor, as repr() is intended for.