Initial tests for SemiGroups.

Simple tests to verify the associativity of the semigroup
implmentations. Currently, integers and doubles have tests. A point of
concern is that the range of the double values needed to be reduced to
avoid problems with precision. Feedback appreciated as I'm not sure if
the range limits are valid in general.

Signed-off-by: Gary Pampara <gpampara@gmail.com>