Fixing a bug where Burndown graphs were accounting for overpsent ledgers incorrectly.
MOre tidy up to do.
Refactored LedgerCalculation to be an instance class (not static) for easier testing.
Fix LedgerCalc tests
Change caching of calculations to a dictionary rather than memory cache