Added docstring to lambdified functions

If arguments have names, that is used. Otherwise the stack is inspected
to determine if the name can be inferred *with certainty*. If there is
more than one variable pointing to the object, then the name cannot be
determined with certainty, and 'arg_#', where '#' is the number of the
arg is used.
Vector pretty print test fix. Fixes issue #7679.
pretty_symbology: Don't assume the output of U() is not None

U() returns None when unicodedata can't be imported. I'm not sure how to test
this because it's only reproducible if unicodedata from the standard library
can't be imported.  I suppose we could add a hook to test it. It won't be
straight-forward though because the key thing is to make sure it works
correctly at import time.

Fixes #8163.
Merge remote-tracking branch 'upstream/master' into lambdify_docstring

Conflicts:
	sympy/utilities/lambdify.py
Added expression printing to lambdify docstring

If the expression is less than 78 characters, the whole expression is
printed. Otherwise, the first 75 characters are printed, followed by
'...'.
Fix automatic evaluation for sin/cos(pi*n/2): consider n.is_even case

fixes #8298
Merge pull request #8003 from jcrist/lambdify_docstring

Added docstring to lambdified functions
Fix vector printing tests in Python 2

This uses u_decode instead of u, which is what the regular pretty printing
tests use.
Merge pull request #8164 from asmeurer/unicodedata

pretty_symbology: Don't assume the output of U() is not None
Sympify SparseMatrix

Converts to ImmutableSparseMatrix now. Fix for #8283.
Merge pull request #8303 from skirpichev/8298-fix

Fix automatic evaluation for sin/cos(pi*n/2): consider n.is_even case
Merge pull request #8310 from jcrist/issue_8283

Sympify SparseMatrix
Merge pull request #8313 from asmeurer/vector-pretty

Vector pretty