Merge branch 'master' into log_integral
Add 'li(z)' to the heuristic Risch integration

With this addition we can now compute some very
simple integrals involving li(z) like:

>>> integrate(li(z), z)
z*li(z) - Ei(2*log(z))

>>> integrate(li(a*z), z)
z*li(a*z) - Ei(2*log(a) + 2*log(z))/a

The code should be able to compute also this one:

>>> integrate(li(a*z**b), z)

but is seems to take ages ...
Improve the pattern for 'li(z)'

By generalizing the pattern we can now do this:

>>> integrate(li(a*z**2), z)
z*li(a*z**2) - z*Ei(3*log(a)/2 + 3*log(z))/(sqrt(a)*sqrt(z**2))

which is correct:

>>> diff(_, z)
-3*a*z**3/((3*log(a)/2 + 3*log(z))*sqrt(z**2)) + 2*a*z**2/log(a*z**2) + li(a*z**2)

>>> simplify(powdenest(_, force=True))
2*a*z**2/log(a*z**2) - 2*a*z**2/(log(a) + 2*log(z)) + li(a*z**2)

>>> pprint(_)

       2               2
  2⋅a⋅z           2⋅a⋅z           ⎛   2⎞
───────── - ───────────────── + li⎝a⋅z ⎠
   ⎛   2⎞   log(a) + 2⋅log(z)
log⎝a⋅z ⎠

as far as these logs do not mess up branch cuts.

However, we can not do the general case although the pattern is
strong enough. Trying:

>>> integrate(li(a*z**b), z)

we get a:

RuntimeError: maximum recursion depth exceeded while calling a Python object
Fix some docstring math function names.
Generalize the rewrite of Ei into li

The formula is only correct for a subset of the complex arguments
but we can currently not reason about the range of arguments:

 ask( Q.real(f(x)), Q.real(x) )

or compute if:

 -pi < imag(f(x)) <= pi

for given f, for example f(x) = 2*log(x)
Merge pull request #1708 from raoulb/log_integral

First implementation of the logarithmic integral 'li(z)'
Merge pull request #1712 from raoulb/li_heurisch

Li heurisch
Merge pull request #2188 from skirpichev/3251-Tuple-limit-NEW

Implement limit method for arguments of hyper and meijerg (issues 3251, 2953)
This PR solves the following:

 -> Avoids unneccesary coversions of polynomials to expressions
    which eliminates the cause of most of the unification errors
 -> Adds more tests to recognize_derivative in risch.py
Add test for RigidBody central_inertia property.
Merge pull request #2197 from zanzibar7/issue3882

fix inconsistent typing in divisor()
simplify(): Call piecewise_fold for expr with Piecewise (issue 3902)
added explicit cases ``n=1,2,3`` in ``swinnerton_dyer_poly``
Fix tests after adding piecewise_fold to simplify()
Don't renumber constant symbols inside of Piecewise
First commit

Improved documentation and found the reason behind test failures
Improved algo to calculate degree
Merge branch 'master' of github.com:sympy/sympy
Add 'Matrix(...' to doctest output.
Made proposed changes