Added basic eval for asin

Found out a bug while writing testcases.
Reported it at #174
Figuring out the best way to avoid multiple creation of lookup
tables created in SymPy's version of inverse trig functions
Merge master into inverse_trig

Resolved the conflicts after merging from #173
Removed the tests which fail
Added inverse sin/cos lookup table

The lookup table will be used by both `asin` and `acos`.
This is a bit change in design as opposed to that of SymPy's
version where the lookup table was created during the function
itself. This could affect performance when multiple instances of
`asin` or `acos` are made.
Updated `asin` to use the inverse_cst lookup table

Added a function `inverse_lookup` which performs the lookup in
the appropriate lookup table. This is needed because there will
be a different lookup table for `atan`. So a generic function
to search in the appropriate lookup table.
Updated is_canonical for asin, updated definitions in functions.h
Added inverse trig class `ACos`. Added tests.
Added Inverse Trig class ASec. Added tests.

Found a possible bug:
assert(eq(div(one, sqrt(i2)), div(sqrt(i2), i2))) fails.
All the other tests pass.
Merge branch 'master' into inverse_trig

This commit fixes the tests failing for negative sign in denominator
Added inverse class `ACsc`. Added tests

Need to add `abs` in `diff`. One test case fails due to bug in pow
Fixed some extra whitespaces.
Fixed diff of `asec`
Added inverse tan/cot lookup table
Added invese class `ATan`. Added Tests.
Added inverse class `ACot`. Added tests.
Updated `diff` of `ASec` and `ACsc`

This variation of diff doesn't need to use the `abs` command
Merge pull request #176 from sushant-hiray/inverse_trig

Adding inverse trignometric classes. Merge #176