--print-balances operation can now be given date(s).

Also two changes that ideally would have gone in separately.
- fixed indentation of --print-balances report so now 2-spaces per
  level, to match --print-chart-of-accounts, and
- fix printing of "$0" so it doesn't come out as "-$0".

Can now specify either:
- --as-at <date>, or
- --first-date <first-date> --last-date <last-date>

If as-at date, specified, report prints balances at the end of that day.

If two dates are specified, prints balances on both dates and also the
differences between the two balances.