Add early exit in the limit heuristics() for "bad" results with oo

This does limit calculations in this method more fragle, which is good.  An example:
```
>>> O(sin(1/x**2).contains(O(cos(1/x**2)))
True
```
was wrong, just because of this limit:
```
>>> limit(sin(1/x**2)/cos(1/x**2), x, 0)
sin(oo)/cos(oo)
```

PS: This problem appears in this pr #2905.