Add SingletonClass, and use it for the rational field
Use WithEqualityById on SingletonClass, replace QQ.__hash__
Add tests for SingletonClass
Add Rational.__new__, to make ancient pickles readable
Fix the hash value doctests of Heegner points
Fix several more hash tests
Use "sorted" in one test on sets
SingletonClass: cosmetic changes.
SingletonClass: Less redundant docstrings
QQ/SingletonClass: Delete redundant doctest

No need to unpickle the whole pickle jar twice.
Make QQbar, AA, and PariRing 'SingletonClass'es
Merge branch 'u/mmezzarobba/15247-singleton_class-rebased' of trac.sagemath.org:sage into public/structure/singleton_class-15247
Some review changes for #15247.
Merge branch 'public/singleton_class-15247' of trac.sagemath.org:sage into public/singleton_class-15247

Conflicts:
	src/sage/categories/homset.py
	src/sage/schemes/elliptic_curves/ell_generic.py
	src/sage/schemes/elliptic_curves/heegner.py
Fix merge error
Added additional check on 'n > -1' condition according to docs.
Fixes docs and removes additional checks on input for 'legender' functions
17324: fix eq and ne for affine and projective morphisms
Fix doctest formatting in src/doc
Update zeromq to 4.0.5 and let it compile on Cygwin.