Better handle infinity in inequality solver.

fixes #8252 
Wrong answer.  Actually, Inteval ignores left_open/right_open if start=-oo or end=oo.  So, we can't represent such set as an Interval instance.

You should return a Union instead or fix `Interval__new__` method.