Pyflakes cleanups to matrices
Add table method to Matrix, and modify the string printer

I took this from Chris Smith's work from pull request #1167. I haven't fixed
any of the resulting test failures yet.
Update lambda printer for Matrix
Update doctests with new Matrix printing

I skipped the agca doctests, because the string printer needs to be updated
(it looks silly now), and the mechanics Sphinx doctests, because I think they
really want to be using pretty printing (to get g' instead of Derivative(g(t),
t)).

I haven't yet touched the regular tests.
Matrix._format_str should be passed a printer, not a function
Update mechanics doctests with updated Matrix printer
Update Matrix printing tests
Update AGCA tests/doctests with new Matrix string printer

This looks a little weird.  We may want to change it.
Add a docstring for Matrix.table
Print single row matrices in one line

**Before**

>>> Matrix([[1, 2, 3]])
Matrix([
[1, 2, 3]])

**After**

>>> Matrix([[1, 2, 3]])
Matrix([[1, 2, 3]])
Use str.ljust, etc. instead of string.ljust

The latter no longer exists in Python 3.
Implementation of the second heuristic

The second heuristic is a method to find the infinitesimals xi and eta of
the PDE mentioned in the documentation under infinitesimals

There are four assumptions to xi and eta

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

g is a function got by extracting factors from the numerator and denominator
f is the function got by solving the auxilliary ODE obtained after
substituting g in the PDE. For now, it is assumed f can be obtained if
the auxilliary ode obtained is separable in f
Fix issue 3890: dsolve failing for an equality multiplied by -1
http://code.google.com/p/sympy/issues/detail?id=3890

One issue was the reordering or args, which should not happen
for Tuple instances, and another issue was the unneeded call
to piecewise_fold.
Add dsolve test for issue 3890.
Add a comment about the handling of Piecewise.
Wrap long lines.
Remove e.is_Add branch in limit():

    This should fix issues, like mentioned in
    https://groups.google.com/forum/?fromgroups=#!topic/sympy/61pRw1PINUA
    or issues 2641 and 3461.
test for limit(Sum(1/x, (x, 1, y)) - 1/y, y, oo), now raises NotImplementedError
Add XFAIL test for issue 3744
Tests for issues 3461 and 2641