Fixed a bug with passing `1` to the `abelians` functions
Began writing a variant of groups.py in which the family-specific group classes
operate directly on values of their "natural" types (ints for Cyclic, (bool,
int) pairs for Dihedral, etc.) and `Group` has become an adaptor around these
classes that operates on special `Element` values that have __mul__ etc.
overloaded
groups2.py: Created an abstract class (in the C++ sense) for the group classes
to inherit from