use aggregate instead of foldLeft in Σ and Π
Monoid.sum can also be implemented in terms of aggregate (vs reduce)
Revert "Monoid.sum can also be implemented in terms of aggregate (vs reduce)"

This reverts commit efc1c60a4332658c2141917965b011947a6cfebf.
Monoid.sum can also be implemented in terms of aggregate (vs reduce)
Merge pull request #309 from adampingel/master

use aggregate instead of foldLeft in Σ and Π