Refactor to simplify operation + some extension

Instead of building string paths through the balance separately to the
summing of each path, this now happens concurrently, in a
Tuple<Decimal,List<String>> being <Sum,Path>. Extended so can dump the
n closest balance paths when there's no Zero balance path. When an
Account has a 0 balance, this will now not be a +- split point in the
recursive pathing algorithm instead it will take a single "+-" path. As
the algorithm produces 2^n results, if you have say 11 accounts to
balance of which 3 are zero, this reduces storage from 2048 to 256,
while the output better communicates the ambiguity of that account
(showing a +- operation next to it, instead of 2 separate Balance
entries, one with + and one with -).