Commutative clean-up.

Add commutative semigroup, plus some missing additive/multiplicative
traits. Also, moved sumn and friends onto the type class itself,
rather than keeping them on companion objects.
added some information about interval and polynomials to the guide