refactor(algebraic_geometry/EllipticCurve): generalise elliptic curves into weierstrass curves (#17220)
Relocate algebraic_geometry/EllipticCurve into algebraic_geometry/EllipticCurve/weierstrass, generalise the existing definition of elliptic curves into Weierstrass curves, and redefine elliptic curves as Weierstrass curves with non-zero discriminant.