remove use of match from _tsolve

XXX not sure why the ode test_linear_coefficients changed
add symmetric lambert detection
factor gets recursive 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