3731: multinomial recurses when necessary

* define the hint's method name at calling time

* there was now a case where cargs was not null that had to be handled

* _eval_expand_multinomial

  - there was some strange legacy code at the start that was removed
  - touchup function that clears any newly created powers was added
  - the note about using Poly to give the expanded expression was
    removed since Poly returns a flat expression and flattening Muls
    is not the job of this method
fix for 2.5 compatibility and other corrections
2820: expand_mul expands denominators fully

The problem was that when n was an Add that itself contained
fractions, those fractions that created a new expandable
Mul in the denominator were not being expanded, e.g.

(1+1/x)/(x*(x + y)) -> 1/(x**2 + x*y) + 1/(x**2*(x+y))
handle recursion in expand, not the _eval_* level
fix failing tests
unrad modifications
use unrad in minimal_polynomial
select minimal factor from unrad result
use verified nsimplify in minimal_polynomial
nsimplify as fallback; check irreducible before factoring
radsimp modifications

Radsimp now handles the general solvable denominator that contains
4 radicals.

sign simplification is also employed on the return expression except
for the case where "sign trickery" is needed to keep the expression
from reverting to the original expression. It is perhaps a better idea
to use an unevaluated Mul with sorted args.

collect_sqrt is no longer used since that doesn't handle properly
the case for issue 2895.
define _addsort/_mulsort to identify its usage in codebase
always return a canonical unevaluated Mul from radsimp
merge unrad with master
remove print statement from simplify
remove unrad from minpoly
add _unevaluated_Mul to mul.py and modify _unevaluated_Add
align code and inline comments
use minpoly as fallback for radsimp; watch for Numbers

- also work with normal form of equation
remove minpoly use from radsimp

This is untraversed code at present and I'm not sure that there
are expressions that will make it to this point that will produce
a minimal polynomial that can be solve.