update and improve unrad

A new class of expressions is now handled by unrad (tests were added).
The change-of-variables handling is now part of unrad, too. This makes
solving polynomials via change of variables much faster now.

-----

Note:

Depending on how the unrad is handled, two answers can be obtained
for this

solve(sqrt(x) + root(sqrt(x) + 1, 3) - 2)

[((-12**(1/3)*(27 + sqrt(741))**(2/3) + 2*18**(1/3))**3 + 5832 +
216*sqrt(741))**2/(46656*(27 + sqrt(741))**2)]

or

[((11664 + 432*sqrt(741))*(-12**(1/3)*(27 + sqrt(741))**(2/3) +
2*18**(1/3))**3 + 46656*(27 + sqrt(741))**2 + (-12**(1/3)*(27 +
sqrt(741))**(2/3) + 2*18**(1/3))**6)/(46656*(27 + sqrt(741))**2)]

Current implementation gives the former.
add note to nsolve and watch for spurious 'method' keyword
edit docstring; remove obsolete comment; add coverage tests
ellipse: handle prec=None case and arbitrary ellipse failure
_tsolve: return None for all unhandled expressions