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.
When someone writes sign(sqrt(neg)) they should be able to get an answer. is_positive benefits from this, not vice versa.