Function Declarations for class `ATan2`

`ATan2` is derived from `Function` rather than from `TrigFunction`
as it has 2 arguments and `TrigFunction` was generalized for one
arg.
Added some methods for `ATan2`

Methods left to be added:
atan2
diff
Added basic version of `atan2` which handles only numbers

We have to figure out a uniform way to check if the given symbolic
expression is positive or negative.
for eg: sub(1, sqrt(2)) should be determined as negative.
Once this is in place, `atan2` can be completed.
Updated comments in `ATan2`

Refactored the comments from `atan2(y/x)` to `atan2(y, x)`
Updated `is_canonical` in constructor.

Now the `is_canonical` takes 2 parameters in constructor.
Builds should pass now.
Added assumptions and TODO in comment for `atan2`
Minor update `atan2`. Added tests.

Followed the convention for if-else statements.
is_canonical was failing for some test cases, so added explicit
else statements to the previous version.
Merge pull request #189 from sushant-hiray/atan2

Added class `Atan2`