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