Tests updated and now the method works for any number of variables
3845: remove indeterminism in constsimp

also implement a more compact passing of args in constantsimp

unfail tests that now work in test_ode.py
use force with solve in dsolve

A marked test generates a PolynomialError since
the general quartic solution cannot be returned
so the PolynomialError is now caught in the try.
solving of trig functions gives 2 (of infinite) solutions

The solving of trig-related frunctions is no longer treated as
a simple inversion in the case of sin and cos so that multiple
solutions are now returned. wester tests have been un-XFAILED to
reflect this change.
reorganize inversion handling; sort _tsolve results
rewrite hyperbolics unconditionally; inverse defined only for monotonics

inverse should be defined only if there is a single inverse for a given
value. sin(x) = 1/2 has 2 values per period and thus does not have an
inverse defined; tan(x) has a single value per period and has an inverse
defined. This attribute is used in the _invert function to algebraically
isolate the variable of interest. Functions with more than one value should
be handled in _tsolve or elsewhere.
add atan2 solving

The formula for the equivalent formula for atan2(y, x) is from

http://stackoverflow.com/questions/6411484/
is-there-a-way-to-reverse-the-effect-of-atan2
pass along flags from _solve and _tsolve
plotting typo fixed
use targeted expansion if u is a power
watch for PolynomialError when using _tsolve
watch for bad simplification
modify inverse tests
fix failing tests
newline
watch for recursive loop in tsolve
remove dead code that is handled by unrad
remove dead code: only Pow and exp qualify
remove dead code: f(x)**Integer=0 would not come to tsolve
Some more cleanups to the tutorial