Refactoring to literate programming style (incomplete documentation for now).

Put everything related to Group in the same file/class.

Created two subclasses of Group: PGroup for permutation groups, FGroup for finite groups.

Groups are now constructed using the factory methods of the objects PGroup and FGroup.