Add FreeMonoid and FreeGroup

This adds 2 new number types: the `FreeMonoid` and `FreeGroup`.
Ah - I see. I guess you'd want a commutative semigroup in that case (though I'm guessing we don't have one). I'm a little mixed about the member traits - at least as they stand. Namely, it adds an Identity, which is a bit superfluous for the free structures - so would you mind dropping that?