Trace.doit() produces Sum
MatMul.doit supports deep
add trace function
trace doctest - add use_unicode=False
Trace.doit calls obligatory doit on Sum
Identity sympifys arg
Add trivial Matrix.doit()
Trace no longer evaluates.  trace evaluates.

Also, trace no longer rewrites as Sum
Trace._eval_rewrite_as_Sum
FunctionMatrix._eval_trace = Trace._eval_rewrite_as_Sum
trace docstrings
xfail Trace rewrite as Sum test
Test and fix for Point.is_collinear coincident point error.

Previously, if the first two points passed to Point.is_collinear were
coincident, the method would always return True.  This is fixed by converting
the point list to a set to remove identical points.
Implementation of the first heuristic

The first heuristic is a method to find the infinitesimals xi and eta, which
are solutions to the PDE eta.diff(x) + (eta.diff(y) - xi.diff(x))*h(x,y)
- xi.diff(y)*h**2 - xi*h.diff(x) - eta*h.diff(y) = 0.

There are four assumptions to eta and xi

1. eta = 0, xi = f(x)
2. eta = 0, xi = f(y)
3. eta = f(x), xi = 0
4. eta = f(y), xi = 0

After finding the infinitesimals, the next step would be to find the
necessary transformation for the simplified coordinates r,s by the following
PDE's

1.r.diff(x)*xi + r.diff(y)*eta = 0
2.s.diff(x)*xi + s.diff(y)*eta = 1
Added infinitesimals to sphinx docs
Merge pull request #2158 from Tempel/coincident_collinear

Test and fix for Point.is_collinear coincident point error.
Add Randy Heydon to AUTHORS/aboutus. Welcome to SymPy!
Corrected minor error in docstring
Merge pull request #2143 from Manoj-Kumar-S/heuristic1

First heuristic
Merge pull request #2159 from smichr/auth

Add Randy Heydon to AUTHORS/aboutus. Welcome to SymPy!