Refactor processing of inequalities with oo/-oo, fixes #7775

rebase on top of #7835?  Or `if other.is_complex and other.is_real is False:`