Implement is_rational method for trig (and inverse) functions (issue 3215)

    http://planetmath.org/encyclopedia/TheoryOfRationalAndIrrationalNumbers.html
    and http://en.wikipedia.org/wiki/Transcendental_function says that
    there is only trivial exceptional set for exp (and log) function.
    Then, same is valid for trigonometric functions.

    For example, lets sin(x) = y is algebraic number.  Then,
    from y = (exp(I*x) - exp(-I*x))/(2*I) (quadratic equation for exp(I*x))
    it follows exp(I*x) is an algebraic number.  But the
    exceptional set for exp() is just {0}, then x should be 0 and,
    thus, the exeptional set for sin(x) is {0}.
Implement Q.algebraic assumptions for exp/log and trig functions

    see 7c99ac8b6be9aecb and 1c1f7e38dbca9869e9b
correct path to ask_update.py in docstring
Add facts: Q.rational => Q.algebraic and Q.algebraic => Q.complex (issue 2019)
AskAlgebraicHandler.Number shouldn't return False, it's wrong!

    Instead implement Float method and return True for one (just as for
    rationals).
Implement Infinity and NegativeInfinity methods for AskAlgebraicHandler
Add missing Pi, Exp1, GoldenRatio, ComplexInfinity methods for assumptions handlers
Implement Q.rational assumptions for exp/log and trig functions

    just as for Q.algebraic
Additional tests for Q.algebraic, Q.rational and S.GoldenRatio
Merge pull request #1899 from skirpichev/3215-is_rational-for-trig

Implement is_rational method for trig (and inverse) functions (issues 3215, 2019, 1077)