groups2.py: Converted `Quaternion` into a class that overrides __str__
groups2.py: Added a wrapper function around DirectProduct that does what you
probably mean with Group objects
groups2.py: Made `pow` available to non-Group elements
groups2.py: Made `cycle` available to non-Group elements
groups2.py: Removed the index methods
permutation.py: Added a method for parsing cycle notation
groups2.py: Added a "subgroup" class
Replaced groups.py with groups2.py
groups.py: Added a `baseGroup` method to `subgroup`