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.
@ness01 , could you look at this? This logic is ported over from `exp._eval_power` but I'm not sure it is meant to apply for any but a polar base. 

```
>>> p.is_polar
True
>>> (p**x)**y  # ok
p**(x*y)
>>> (x**p)**y  
x**(p*y)  # ?
>>> (x**y)**p
x**(p*y)  # ?
```

And actually, I haven't transferred with absolute fidelity because in the cases marked with "?" above x was positive in the `exp._eval_subs` routine. I can fix that here but still...I'm not sure it's right.