Faster ``minpoly`` using composed sum.

Added power series functions on "ring.PolyElement" objects.
small changes in the documentation; used ``as_int``
Piecewise: added as_expr_set_pair property
Change version to 0.7.5-git
used ``giant_steps`` from ``mpmath``
Merge pull request #2630 from pernici/mp5

faster minpoly using composed sum
use giant_steps in expr.py
block imaginary coordinates for Point

The computations that are done in geometry assume that
the points are real. Without placing undue stress on the
computations by checking this every time, a check is done
only when the coordinates are numbers. Of course, there
is nothing to stop one from using imaginary points in
an expression obtained from geometry, but one should not
be doing that.
Merge pull request #2924 from smichr/imag

block imaginary coordinates for Point
relax constraint on quartic solutions

The "general solution" given at

https://en.wikipedia.org/wiki/File:Quartic_Formula.svg for
x**4 + a*x**3 + b*x**2 + c*x + d == 0

                TH = Rational(1, 3)
                g = b**2 - 3*a*c + 12*d
                al = 2*b**3 - 9*a*b*c + 27*c**2 + 27*a**2*d - 72*b*d
                be = sqrt(-4*g**3 + al**2)
                a4 = 2**TH*g/(3*(al + be)**TH)
                a5 = ((al + be)/54)**TH
                a3 = a**2/4 - 2*b/3
                a1 = a3 + a4 + a5
                a2 = 2*a3 - a4 - a5 - (-a**3 + 4*a*b - 8*c)/(4*sqrt(a1))
                r1 = -a/4 - (sqrt(a1) + sqrt(a2))/2
                r2 = -a/4 + (-sqrt(a1) + sqrt(a2))/2
                r3 = -a/4 + (sqrt(a1) - sqrt(a2))/2
                r4 = -a/4 + (sqrt(a1) + sqrt(a2))/2

is not generally valid.

Consider this equation

>>> eq=(x**4+a*x**3+b*x**2+c*x+d)
>>> eq.subs(dict(a=2,b=3,c=z + 11,d=5))
x**4 + 2*x**3 + 3*x**2 + x*(z + 11) + 5

There is no real value of z that will give this more than
2 real roots and yet all 4 roots given by the above formula
for z=0, for example, are real:

>>> zans=solve(_,x)
>>> [w.subs(z,0).n(2) for w in zans]
[-2.3, -0.51, -0.49, 1.3]

Again, consider

>>> eq = x**4 - 8*x**3 + 24*x**2 - x*(z + 32) + 16
>>> zans=solve(eq, x, check=0)
>>> [w.subs(z,0).n(2) for w in zans]
[nan, nan, nan, nan]

versus

>>> [w.n(2) for w in solve(eq.subs(z,0))]
[2.0]

>>> [w.subs(z,1).n(2) for w in zans] # 4 imaginary
[1.8 - 1.2*I, 1.8 + 1.2*I, 2.2 - 1.2*I, 2.2 + 1.2*I]

versus

>>> [w.n(2) for w in solve(eq.subs(z,1))]  # two imaginary
[1.0, 1.8 - 1.2*I, 1.8 + 1.2*I, 3.4]
Merge pull request #2859 from hargup/piecewise

Piecewise: added as_expr_set_pair property
return quartic roots in Piecewise
Merge pull request #2926 from smichr/quart

use Piecewise for quartic solutions when necessary
move Piecewise handling
Merge pull request #2939 from smichr/piece

move Piecewise handling
Intersection method of a Line.
wrap long lines
Merge pull request #2940 from smichr/geom

Intersection method of a Line.
skip some object tests in test_args
gh2941: fix LinearEntity intersection problems