Eval Abs(exp(x*I)) as 1 if x is real

- also rewrite re and im in terms of each other, useful for some simplifications
Just found a strange bug.  `x=Symbol('x',real=True);  Abs(x)**-3` is returning the wrong value in master!  I'll fix this too and add a test.