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.
I still think that we should check if sign(t) was evaluated.  Something like `sign(t).has(sign)` or even just `sign(t).func is sign`.