Raise TypeError instead of returning False, if we can't sympify 'other'

Unfortunately, we can't use _sympifyit decorator, because in py2 class
instances are compared by object identity ("address") if no other
comparison helpers are defined.

fixes #7833
Use S.Infinity in _infimum_key, if we can't return infimum
Merge pull request #7956 from skirpichev/7833-fix

relational ops: Don't use False as a replacement for 'other', if we can't sympify 'other'