do not dispatch to re/im when all factors are already known

Refactor so re and im will not have to re-calculate all that has
already been separated.
7374: process n < 10 in factorint even when limit > 1
Merge pull request #7919 from smichr/real1

do not dispatch to re/im when all factors are already known
Merge pull request #7924 from smichr/7374

7374: process n < 10 in factorint even when limit > 1
quicker exit for Pow imaginary handlers
add some numerical handling to Pow imaginary/real handlers

I do not know how to add the same thing to the new assumptions
since arg must be computed and whether it comes back evaluated
or not depends on arg's use of the old assumptions. So

var('x');ask(Q.real((x - I*x)**2), Q.positive(x))

will not evaluate properly unless one *also* does var('x', positive=1).
add Mul.is_nonzero handling
add Pow._eval_is_complex routine
replace _eval_template_is_attr with fuzzy_group