Add a cumulative sum to KeyedList

Not sure where the best place to put this is (or where to add tests) but this is a method for taking cumulative sums that doesn't require all the entries to go through a single scanLeft. It accomplishes this by

- taking an ordered partition of the entries
- summing up the entries in each partition
- scanning through the sums (which does require going through a single scanLeft so there can't be too many partitions)
- then scanning through each partition starting from the cumulative sum of the prior partition (so each partition can't be too big either)

This has been compiled against master.
I seem to recall `flattenValues` was giving me grief when I was using an `Option`... I'll confirm though