Implement Semigroup instead of Monoid in Depedencies

Scalding TypedPipe needs an implementation of Semigroup.plus() to do value summation aggregation[1]. (the old API used Monoid instead) The goal is to fix failing scalding job caused by java.lang.AbstractMethodError 

Changes:
- implement Semigroup.plus instead of Monoid.plus
- pump algebird version to 0.4.0

[1] https://github.com/twitter/scalding/blob/0.9.0rc1/scalding-core/src/main/scala/com/twitter/scalding/typed/TypedPipe.scala#L194