gh-37128: Save and load finitely presented groups coming from libgap groups
<!-- Describe your changes here in detail -->
At this point it is not possible to load a saved finitely presented
group that comes from a libgap group, see an example in
https://github.com/sagemath/sage/issues/37061
One possible cause is the use of a general `__reduce__` method for free
groups. At least, adding such a method allows to load free groups or
finitely presented groups obtained from a libgap group using
`wrapFreeGroup` or `wrapFpGroup`. It fixes #37061 and it would simplify
some code in https://github.com/sagemath/sage/pull/36768
With these changes, free and finitely presented groups, included libgap
groups, can be pickled.
### :memo: Checklist
- [X] The title is concise, informative, and self-explanatory.
- [X] The description explains in detail what this PR is about.
- [X] I have linked a relevant issue or discussion.
- [X] I have created tests covering the changes.
- [X] I have updated the documentation accordingly.
URL: https://github.com/sagemath/sage/pull/37128
Reported by: Enrique Manuel Artal Bartolo
Reviewer(s): Enrique Manuel Artal Bartolo, Travis Scrimshaw