solver/unrad mods

In polys, a case leading to a recursive error was discovered and corrected.

In solve, the changes look more dramatic than they are. Modifications were made to unrad leading to significant speedups, fixing #8591, and `_tsolve` correctly handles expressions that should have raised a NotImplementedError.

In nsolve, an example in the docstring was added that shows how to use a different solver (rather than forcing the user to see the findroots docs) and takes the opportunity to tell about a limitation and workaround. A guard against the spurious keyword was added. Although there is no SymPy-wide checking of keywords, this particular keyword is one that is used elsewhere in SymPy and will lead to confusing results from nsolve as it is silently ignored. This arose from a SO issue [here](http://stackoverflow.com/questions/27373590/how-to-obtain-all-solutions-for-cosxcoshx-1-in-sympy).

minor changes to unrad's docs are made. Improvements to unrad were made which fold in change-of-variable handling and another class of expressions involving radicals (see added tests).

Ellipse is modified to handle of the case when no precision is given (and the general solution is desired).

A condition that should have raised NotImplementedError because of the `_tsolve` failure to handle an expression now raises that error.