Add increments to all Summers

Added a new increment traits and added different increment counters to all existing summer. Modified `AsyncListSum` to support compaction. 
so the internal MapContainer already has the `if` in the middle and this is how it looks
```
    def addValue(v: Value): (MapContainer, Int) = {
      if(size > compatSizeInt) {
        val newV = workPool{fSg.sumOption(Future.value(v) :: privBuf).get}.flatten
        (new MapContainer(List(newV), 1), size * -1)
      } else {
        (new MapContainer(Future.value(v) :: privBuf, size + 1), 1)
      }
    }
``` only thing I added is `compact`. To be honest my first implementation had two separate classes one for compact and other for noncompact and a factory that created the right one based on the use case but it didnt look right as there was too much shared code