Mod handles more simplification

While still trying to keep evaluation fast, Mod will now
removing a gcd from the terms and check for known differences
between arguments. Denesting is also implemented (although
probably more could be done).

Thanks to Patrick Lacasse for this suggestion to check ratios.
watch for TypeError from int
fix transform tests
don't let sum processing introduce new Mod
geometry: reflect method; ellipse & RegularPolygon 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.

** use simplify in geometry

The only place where nsimplify is used is in the definition of Points.
That instance is now limited only to converting floats to Rationals.
Without the rational=True option it would have converted, with approximation,
expressions like follows:

>>> nsimplify((1/(exp(3*pi*I/5)+1)),rational=0)
1/2 - I*sqrt(sqrt(5)/10 + 1/4)

Although that is correct in this instance, it might not always be
correct.
Merge pull request #2004 from Acebulf/master

Fixed bug resulting from typo in sho1d.py
Merge pull request #1997 from smichr/mod

Mod handles more simplification
Merge pull request #1963 from smichr/geom

Geometry: reflect method; oriented Ellipse and RegularPolygon