applyCumulative method on Aggregator

Cumulative sum iterator for Aggregator. I'm not sure if `applyCumulative` is the right name here?
I don't like doing a conversion as the first thing in a method.

What about making this method take `Iterator[A]`?

If you did that, I think you would implement this using scanLeft:
```scala
inputs.scanLeft(None: Option[B]) {
  case (None, a) => Some(prepare(a))
  case (Some(b), a) => Some(semigroup.plus(b, prepare(a)))
}
.collect { case Some(b) => present(b) }
```
What do you think?