[ledgercli] Versioning, error handling

- Switched to passing the command via argv instead of stdin to ledger. We
  might as well as we don't use ledger's long-running mode in an effective
  manner.
- Added version control of the ledger file using pygit2.A
- Added error handling in the case of an unbalanced ledger, and cruder
  error handling in the case of any stderr output from ledger.
- [web] Separated transaction_get into transaction_get and
  transaction_get_all.