Refactor processing of inequalities with oo

fixes #7775
fixes #7798
fixes #7841

this patch replaces #7800 and #7799
> but if Python flips it to `a >= infinity`... recursion.

If you following the discussion in the #7951 - this can be only in a very specific circumstances (if we subclass Infinity/NegativeInfinity).