gh-38259: Fixed and improvements in `is_LLL_reduced` and `approximate_closest_vector`
This fixes #38115. Along with the goal stated there I have fixed some
stuff I wasn't happy with from the first iteration of
`approximate_closest_vector`. These changes could be breaking but seeing
as there has been no release since its introduction this shouldn't be a
problem.
Changes:
- Added the `algorithm` parameter to `is_LLL_reduced` along with the
new algorithm `fpLLL` which uses fpylll's `LLL.is_reduced` method, **and
made it the default**, as I see no advantages with the old
implementation.
- Added the `algorithm` parameter to `approximate_closest_vector` along
with the new algorithms `embedding` and `rounding_off`, **and made
`embedding` the default.**
- ~Changed the alias of `approximate_closest_vector` from `babai` to
`cvp` to be more accurate but still short.~
I'm getting weird errors when building documentation locally but I don't
think it's related to my changes, so I haven't been able to check if the
doc build looks alright yet. (and it won't build on my own repo b/c my
GitHub username has uppercase letters in it :)
### :memo: Checklist
<!-- Put an `x` in all the boxes that apply. -->
- [x] The title is concise and informative.
- [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.
- [ ] I have updated the documentation and checked the documentation
preview.
URL: https://github.com/sagemath/sage/pull/38259
Reported by: TheBlupper
Reviewer(s): Giacomo Pope, Matthias Köppe, TheBlupper