process imaginaries to determine whether expr is positive or negative

pairs of imaginary factors change the sign of an expression; detecting these was added to Mul._evalf_is_negative.
You can just check if C.sign evaluates the argument, instead of this ugly loop (and use for loop).

Something like:
```python
s = C.sign(t)
if s.func os C.sign:
    return
```

In fact, you can even drop the `im_count` in this case (`C.sign` of `I` is `I`).