polys: Maintain one instance per PolyRing/FracField
polys: Check for division by zero in FracElement.{__div__,__pow__}
polys: Better handle hot paths in PolyElement.cancel()