Adding class `Atan2`

`atan2` is defined as follows:

![atan2](https://cloud.githubusercontent.com/assets/2182581/3226237/f2bee25a-f068-11e3-804d-7a0680c21755.png)

Now the current PR works fine when `y` and `x` are both `Numbers`, however in cases where there are irrationals for instance `sqrt(3)` we don't treat them as `Numbers` so need to have a `is_positive()` and `is_negative()` for such cases.

The difficulty being  we need to perform exact compare to figure out if it's positive.
for eg: `sub(1, sqrt(2))` we should be able to figure out this is negative to make `atan2` work perfectly.