Add two more tests from Wester
Merge branch 'issu694_test_wester_pablo'
Merge pull request #2564 from smichr/plot

correct iteration in plot
Merge pull request #2469 from jrioux/concrete

Fix for issue 3987 with deltaproduct.
Merge pull request #2487 from jrfiedler/master

Typo fix in derivative of lowergamma function
Add test_args test for BooleanAtom
Hoist constants out of loops.
Add James Fiedler to AUTHORS/aboutus. Welcome to SymPy!
Use _sympify in LatticeOp.__new__
Sort the args of Equivalent

This uses a similar strategy of LatticeOp, storing a set in _argset and only
computing the sorted args if they are requested.  This fixes issue 4081.
Matrices: partial implementation of the Moore-Penrose pseudoinverse.

Added two methods: one to calculate the pseudoinverse, and another to apply it
in the solution of Ax = B.  The pseudoinverse calculation works only for full-
rank matrices and zero matrices; rank-deficient matrices will be more
complicated, possibly requiring a complete symbolic implementation of singular
value decomposition.  Until then, this should work well enough (at least for
me!).

See https://en.wikipedia.org/wiki/Moore-Penrose_pseudoinverse
_eval_simplify for Piecewise and Tuple.
Matrix pinv: switched arbitrary matrix to dummy symbols, added examples.

At Aaron Meurer's suggestion, changed the default arbitrary_matrix of
pinv_solve to contain dummy symbols instead of regular symbols, and added
examples to both pinv and pinv_solve.
Merge branch 'master' into 3741-nargs-as-tuple
Use "== True" in places instead of "== true" or "is true"
Explain why BooleanAtom does not subclass from bool
Explicitly use true/false instead of True/False in And and Or
doctests examples for data
Merge branch 'master' into tensor_numpy
gruntz: nuse = n + 2*ceiling(cf)

cf doesn't have to be an integer, but it needs to be a number,
and we use the ceiling function to convert to an integer.