Move liftSemigroup to Semigroup; privatize implementing traits.

Just what it says on the tin.