Update gmpy2 compatibility to 2.0.0
summations.py: return Piecewise for symbolic geometric sums in finite case (issue 3703)
Merge pull request #1941 from shikil/gmpy2

Update gmpy2 compatibility to 2.0.0
Add Stephen Loo to the AUTHORS/aboutus. Welcome to SymPy!
Merge pull request #1910 from skirpichev/3703-finite-geom-sum

summations.py: return Piecewise for symbolic geometric sums in finite case (issue 3703)
try return factored expr more often from simplify
mod handles more simplification
equals tries to prove an nsimplify result
use nsimplify in geometry
geometry gets reflect method; ellipse and regular polygon are oriented

Now geometric objects can be reflected across a line.

This is not implemented for the Ellipse except in the case of horizontal
and vertical lines since arbitrary rotation of the ellipse is not supported.

Now RegularPolygon and Ellipse track their orientation so they, like
Polygon, can yield a positive or negative area.
Factors: -1 handling and non-integer exponent handling
use equals on numbers in sign and abs

NOTE: things like f(0) + f(1) are considered numbers, so the is_comparable
test is used instead.
AppliedUndef.is_number -> False
exp_polar related changes

* define is_number for exp_polar

* move abs after test for exp_polar (which has been changed to a test
that arg.is_Number or pure_complex rather than testing for the _prec i
attribute).