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
remove use of unevaluated objects from _expand_hint
Merge pull request #1967 from smichr/3731

issues 3710, 3731: expand fully
apart and cancel are nc-aware
2699: use xthreaded, not threaded in apart
apart and cancel are nc-aware
denest powers in powsimp so 4**s*2**(x-2*s) -> 2**x

Should this only be done if the base is a Number?
3341: allow factors of coeff to enter powers

* i order to make this work, multiplicity was made to handle Rationals.