Adding `tan` to basic trignometric functions

Currently all the methods which have been implemented for sin and
cos have been implemented.
Added Basic Tests for tan

Currently the following functionality doesn't work:
tan(x) = sin(x)/cos(x)
Correspondingly tests which use this fact don't work.
Basic tests for equality and diff work.
Updated diff and equality check in tan. Added tests

Updated equality check so that it checks : `tan(x) = sin(x)/cos(x)`
Changed the diff to `tan(x)**2 + 1` from `sec(x)**2`
Added relevant tests to check the new functionality.
Removed `sin/cos` form for `tan`

Keeping it similar to sympy's implementation, `tan` is kept just
`tan` and not `sin/cos`
Removed the extra tests which were checking this functionality.
Fix formatting issues

Updated spaces after comma.
Removed stray variable declaration in `test_tan`
Adding `cot` to functions

Added cot with the basic API.
Added unit tests to check functionality.
Added TODO's to handle +inf/-inf corner cases

Added TODO's to handle the +inf/-inf corner cases
for the `is_canonical` method in tan and cot.
Added class Csc

Added class for csc and updated all its method.
API for this class is equivalent to earlier existing API's
for trignometric classes
Added tests corresponding to csc(x)

Added additional tests corresponding to csc(x)
Added class `sec`

Added class `sec` and updated all the methods in the basic
trignometric API
Added tests for `sec(x)`

Added tests corresponding to `sec(x)`
Remove extra whitespace in test_functions
Fix Code Style issues

Added the `CSYMPY_ASSERT(is_a<Csc>(o))` on a new line.
Merge pull request #164 from sushant-hiray/trig_class

Adding remaining trignometric classes, mainly `tan`,  `cot`, `sec`, `csc`