Added methods is_positive and is_negative in `Number` class

Also added definition for `rdiv` in `Integer` class. Both these
changes are needed for updating the `pow` method.
Basic changes to `pow`

Removed quite a bit of seg-faults. With this change all earlier
tests pass, however the `sqrt(2)` test still fails.
Need a couple of more cases to handle them.
Updated `is_a_Number` case in `pow`

Only those test cases fail which have negative power and are in
`mul` form. Need to add more checks in `mul`.
Updated `power_all_terms` for the case when exp is negative
Earlier tests work. The bug also passes test

Although this passes the test, there seems to be a bigger problem
in play here. Mostly in the cases when a number and its reciprocal
are present in the div. They are not being treated the same.
So will eventually fail on some or the other case.
Updated `dict_add_term` for the case of `Number`

With this addition, A `Number` and its reciprocal both are checked
in the dict before adding it into the dict.
So effectively no cases should occur where the dict contains both
the number as well as its reciprocal
All the tests pass.
Fix if-else indentation issue
Updated dict so that it only enters rationals in form num > den

After the discussion on PR it was decided to follow the convention
of inserting rational items in the dict in form num > den.
So this avoids a find later on, which were causing the benchmarks
to degrade.
Added tests which were failing initially. All tests pass now.
Removed empty line
Merge pull request #182 from sushant-hiray/pow_fix

Fix `pow` to handle negative exponents. Fix for #179