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.
handle 1.0 and clarify div, normal, quo, rem

- core/basic.py
    sympy typo
- core.expr.py
    args_cnc splits -1 from 1.0, too
- core.exprtools.py
    o sympify Python numbers
    o be more careful with 1.0 so Float expr doesn't become Rational
        e.g. Float(1.0)*x != x
    o rework the handling of canonicalization
    o updated the docstrings of div and normal to highlight their
      similarities and differences
    o remove the powdenesting during division; Factors is suppose to
      be fairly naive and fast
    o rem no longer returns 0 when other is contained in self; it
      is somewhat minamed because div is not really doing a divmod
      calculation, it is doing division, removing common factors
      from self and other: a*b*c/b -> a*c/1