gh-36184: add class groups of binary quadratic forms
This patch adds an implementation of the form class group for positive
definite binary quadratic forms. (We restrict to definite forms for now
since it is the easier case: Every class contains a unique reduced
form.)
Most of the required functionality was already available in PARI or
Sage, but the types introduced in this patch make it easier to
manipulate form classes and interface with existing algorithms for
generic abelian groups.
URL: https://github.com/sagemath/sage/pull/36184
Reported by: Lorenz Panny
Reviewer(s): Giacomo Pope, Lorenz Panny