KroneckerDelta is 0 or 1, thus any positive power returns itself.
Simplify Interval.as_relational().
Handle KroneckerDelta in summations and products.

Fixes issues 3481 and 3482.
Use solve only once on the system of equations.

Use solve only once on the system of equations, instead of calling
it for each equation.
Fix Issue 3727 (ufuncify + erf)
Exception handled for ordering relation in plotting
Uniformity in checking whether a number is a complex number
Added test for handling Max
Increases matplotplot min version to 1.1.0
changed returns so that it is short circuited
Added unit test for lambdify

Removed the plotting test for Max(x, 5) replacing it with a unit
test for lambdify
minimum matplotlib version required = 1.1.0 in runtests.py

Added a reminder comment at plot.py to change the minimum matplotlib
version at runtests.py.
Staging the infra of a basic PDE Solver
Minor Change
added ``minimal_polynomial_sq`` and ``nthroot``

``minimal_polynomial_sq`` returns the minimal polynomial for the
``nth-root`` of a sum of surds.

``nthroot`` computes a real ``nth-root`` of a sum of surds.
bessel.py: implement missing expansions of besseli/j/y/k for (half-)integer nu

    * besseli/j/y/k: _eval_expand_func() does rewrite for
      nu.is_integer, using reccurence relations
    * besseli/j/y: _eval_expand_func() does rewrite
      for (nu + S.Half).is_integer as jn/yn
besseli/j/k/y: major rewrite for eval() methods:

    * add parity symmetries for nu
    * work with nu.is_integer, not just nu.is_Integer
    * add some known values
    * add generic symmetry in z for besseli/j
besselsimp: apply expand_func for besseli/j if nu is integer > 1 (issue 3055)
bessel.py: add references to functions.wolfram.com
BesselBase: add _eval_conjugate() method (with override for hankel1/2)