consolidate exp._eval_subs and Pow._eval_subs

Some differences from master
```
>>> exp(x+E).subs(E,2)
2**(x + E)  <------- now 2**(x + 2)

>>> (E**(2*x+3)).subs(E**(x),3)
9*exp(3)
>>> (a**(2*x+3)).subs(a**(x),3)
a**(2*x + 3)  <----------- now gives 9*a**3
```