consolidate exp._eval_power and Pow._eval_power

Consolidate exp._eval_power into Pow._eval_power as much as possible.

Details are given in the commit's log.

In master, the lhs is incorrectly reported with a negative of the rhs
```
    assert sqrt(exp(3 + I)) == exp(S(3)/2 + I/2)
```
these are not recognized of being able to combine exponents
```
    ((1 + I)**(I*pi/(2*log(sqrt(2)))))**(S(1)/3)
    ((1 + I)**(-I*pi/(2*log(sqrt(2)))))**.3
    ((1 + I)**(-I*pi/(2*log(sqrt(2)))))**(1/S(3))
    ((1 + I)**(-12*I*pi/log(sqrt(2))))**(1/S(3))
```
@smichr, the example that I gave above had e=3/2, i.e. re(e) >= 0, and yet it does not work.
Perhaps you meant to write, that it would only work if re(b) >= 0? I think that's true actually, that might work.