Merge pull request #2129 from smichr/roots

handle generator in solve, RootOf.free_symbols, solve docstring
upgrade solving for abs, powers, and real/imag variables

Also:

    use powdenest before factoring in _tsolve

    fix detection of difference of functions
add bivariate solving to solvers
edits after coverage check
modify preprocessing for lambert
add recursive factor to namespace
remove use of match from _tsolve
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