3717: Factors cleanup and non-integer exponent handling

I tried removing I altogether from the factors, storing it as
-1**(1/2) but then there were transform tests that failed.

denominators of Rationals are given a negative exponent. This is
not done with Expr factors -- this is not suppose to be handling
rational expressions, really.

@pernici , I pulled this out of the other work since you've already given it a glance. It's simpler now than before. Can you give it a final review?