Exponential Module

Currently I've created an `Exp` class. However, as @certik suggested, it might not be that necessary to create a class for `Exp`.
The only new addition was an explicit `diff` which can be incorporated in the current `diff` of `pow` itself as a special case.
My earlier view was that since we will be adding functions like `rewrite_as_exp` functions in trignometric classes it might be useful to have an `Exp` class but I guess as Aaron said on gitter, 
> it's better to special case E in one place (pow) than to special case exp everywhere in the code that tries to deal with pow objects 
Also, we decided to always expand the log(1/2), so this function should check that the argument is never rational.