factor gets deep flag

This is documented in the docstring with an example and is used
in subsequent commits.
remove some indeterminism from solve
update ode tests
make trig rewriting more robust in solve
2830: add more aggressive testing to checkodesol
use logcombine in _tsolve
modify doctests and tests for ode
try avoid recursion in _tsolve

Before these changes a hash-dependent failure would occur:

didn't have recursive error in drv_types.py doctest
    architecture:       32-bit
    cache:              yes
    ground types:       python
    hash randomization: on (PYTHONHASHSEED=380265779)

did have recursion error:
    architecture:       32-bit
    cache:              yes
    ground types:       python
    hash randomization: on (PYTHONHASHSEED=1110671673)
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.