Refactoring of LowestCommonGroupCrossoverAlgorithm and
LowestCommonGroupUnevaluatedCrossoverAlgorithm to facilitate easier
maintenance and better unit testing.