gh-37361: Add iterators, Whitney numbers, characteristic polynomial, etc
Changes (mostly in `matroid.pyx`):
- Add `_iterator` functions for `bases`, `circuits`, etc, and use them
internally (this avoids memory consumption/blowups)
- Add Whitney numbers functions (for the first and second kind)
- Correct `f_vector` definition (the definition up till now referred to
the Whitney numbers of second kind)
- Add characteristic polynomial
- Correct `is_valid` function to be `False` on a negative rank value
- Optimize `circuits` function (e.g. `sage: %time C =
matroids.CompleteGraphic(8).circuits()` drops from `4m` to `1m`)
- Optimize `broken_circuit_complex` function
- Improve docstrings (1-line outputs and other changes)
### ⌛ Dependencies
* Depends on #37667
URL: https://github.com/sagemath/sage/pull/37361
Reported by: gmou3
Reviewer(s): gmou3, Matthias Köppe, Travis Scrimshaw