Added basic methods for `Exp` class
Update `exp` to just use `pow` underneath
Removed `Exp` class

Removed the `Exp` class however the `exp` function is retained
as discussed on the PR
Updated `diff` of `pow` to evaluate case of `exp^x`

This is a special case. Once `log` is implemented, a more general
version of the case should be added, as specified in the comments.
Added basic version of `Log`

`log` function is to be added. It will perform only basic checks
to simplify or else will return `Log(arg_)`
Added function `get_num_den` in `rational.cpp`

`get_num_den()` takes a rational and returns its `num` and `den`
in  the form of `RCP Integer`.
This function will be used to simplify `log(a/b) = log(a) - log(b)`
Added `log` function. Added tests.

The `log` function is still pretty basic.
It only performs one simplification in case of rational `arg`.
In SymPy some more simplifications are done on the basis of having
a `Base` other than `E`. This will be discussed in PR.
Updated `diff` of `pow` to use `log`
Added `log(arg, b)` to find `log_b(arg)`
PR Cleanup

* Removed redundant lines: unnecessary return, extra init lines
* Added specific comments
* Updated `is_canonical` to check negative `Number` & `Rational`
* `log` now throws unimplemented for negative Numbers.
Merge pull request #194 from sushant-hiray/exp

Exponential Module. Merge #194