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
handle constant term during div or normal
process +/-1; allow any SYMPY_INT
Merge pull request #1982 from smichr/3717

3717: Factors cleanup and non-integer exponent handling
Merge pull request #2016 from smichr/geom

fix geometry tests and modify arbitrary_point in line.py
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