issues 3710, 3731

There is a public-facing method to flatten any expression wrt mul and multinomials.

`expand_multinomial` cleans up any newly introduced multinomials and doesn't expand out muls.

The coverage of `Pow._eval_expand_multinomial` is now at 100% (less one line that I am not sure that can be reached).