atan2 recognizes im args and arg throws away common parts of re and im parts

The test used to decide whether to rewrite atan2 as arg did not discriminate against imaginary arguments for which the given expression did not apply. In addition, imaginary args are now recognized by the eval method of atan2 so something like atan2(2, 3*I) will not remain unevaluated.

In addition, something like arg(3*(a+I*b)) now simplifies to arg(a+I*b).