3226: give diff a simplify option
make high-order derivatives simplified by default

Only factor_terms and signsimp are used in the simplification; other
simplification may be possible but that is left for the user
to decide if it's necessary.

* do not simplify in euler_maclaurin

For some reason the size of the derivatives grows if the
simplification is used. I don't know why.
Merge pull request #1998 from smichr/3226

3226: give diff a simplify option
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?
allow factors of coeff to enter powers

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

== add quick exit for simplify if expr is Atom

== 3712: try return factored expression more often

== 3730: use as_content_primitive and cancel
2699: use xthreaded, not threaded in apart
upgrade solving for abs, powers, and real/imag variables

* the power-handling section was simplified to let powsimp decide
  whether the powers can be combined rather than duplicating the
  code here
use powdenest before factoring in _tsolve
better break condition in unrad

I am not sure what the exact rpt value should be at break, but the
value now is how high it had to be so that no tests would fail.
fix detection of difference of functions