gh-35540: For groups: generic centralizer, subgroup methods; improving center
<!-- Please provide a concise, informative and self-explanatory title.
-->
<!-- Don't put issue numbers in the title. Put it in the Description
below. -->
<!-- For example, instead of "Fixes #12345", use "Add a new method to
multiply two integers" -->
### :books: Description
<!-- Describe your changes here in detail. -->
<!-- Why is this change required? What problem does it solve? -->
<!-- If this PR resolves an open issue, please link to it here. For
example "Fixes #12345". -->
<!-- If your change requires a documentation PR, please link it
appropriately. -->
Only certain groups (mainly permutation groups) implement
`centralizer()` and `subgroups()` methods, but GAP provides this
functionality for more general groups. We provide this implementation
for all finite groups implemented via GAP, which seems to do a brute-
force approach. Likewise, the `center()` method for infinite groups
seems to run forever, and we protect against that. We add an explicit
`center()` method for Heisenberg matrix groups (which have a GAP group)
both to demonstrate that specific (infinite) groups can implement it and
to provide this information.
### :memo: Checklist
<!-- Put an `x` in all the boxes that apply. It should be `[x]` not `[x
]`. -->
- [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.
### :hourglass: Dependencies
<!-- List all open PRs that this PR logically depends on
- #12345: short description why this is a dependency
- #34567: ...
-->
<!-- If you're unsure about any of these, don't hesitate to ask. We're
here to help! -->
URL: https://github.com/sagemath/sage/pull/35540
Reported by: Travis Scrimshaw
Reviewer(s): Daniel Bump