Implemented mathematical groups.

Group::Z is a special case insofar as the first of its two labels is used to label the actual Z/n, whereas the second label then denotes the irrep in that group.