Refactor processing of inequalities with oo

fixes #7775
fixes #7798
fixes #7841

this patch replaces #7800 and #7799
`return C.StrictLessThan(self, other, evaluate=False)`, prevent infinite recursion after merge.