feat(algebra/group/freiman): Freiman homomorphisms (#10497)
This defines Freiman homomorphisms, which are maps preserving products of `n` elements (but only in the codomain. One can never get back to the domain).
This is useful in additive combinatorics.