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))
```
Hm, are you sure about that? If b=-1, but e=1/100, then `floor(1/2-/+e*arg(b)/2/pi)) = 0`:
```
In [1]: from math import floor, pi

In [2]: e = 3./2

In [3]: b = -1

In [5]: floor(1./2 - e*pi/2/pi)
Out[5]: -1.0

In [6]: e = 1./100

In [7]: floor(1./2 - e*pi/2/pi)
Out[7]: 0.0
```
So you don't get the minus sign correction, so the simplification is incorrect in my opinion.