sign(sqrt(1-sqrt(2))) -> I instead of being unevaluated

Numerical expression that are not not Numbers and symbolic expressions are not autoexpanded like sqrt(-2)->I*sqrt(2). So sign is made aware of this condition so sign of well defined negative args of sqrt can be returned as `I`.

In addition, the changing of sign by multiple I tems is better implemented.
Why not improve Mul.is_positive handler instead?