Integrate functions multiplied by Heavisides

- uses manualintegrate to deal with complicated cases
fix issue #8342
Unions with infinite elements now interleave.
Uses the roundrobin recipe from the documentation for itertools.
Update sets.py
Inequalities: test for simplifying

These should not simplify automatically.  But should do so if requested
with `simplify()`.
Assumptions: is_zero: add XFAIL test for issue #7993
Equality: add examples to docstring

Show effect of simplify and evaluate=False kwarg.
Update sets.py

Added reference to roundrobin recipe, changed so that we always roundrobin the Union's arguments.
8247: use minpoly in Expr._eval_is_zero

Only attempt this test if self is algebraic
with hopes that the test will then be successful and fast. There
are cases where something passed the is_algebraic test but still
raised the NotAlgebraic error in minpoly:

sympy/integrals/transforms.py", line 1818, in
sympy.integrals.transforms.inverse_hankel_transform
Failed example:
    inverse_hankel_transform(ht, k, r, 0)
    Exception raised:
        Traceback (most recent call last):
        ...
    NotAlgebraic: exp_polar(0) doesn't seem to be an algebraic element
Merge pull request #8372 from ted-dokos/master

Interleaving for unions with infinite sets
move minpoly handling to is_negative and is_positive

Failures when trying to make this go in the is_zero routine were
catastrophic and random:

https://travis-ci.org/smichr/sympy/builds/39894250
Equality: minor edits to docstring
Merge pull request #8015 from zanzibar7/rewrite_abs

Integration of Heaviside polynomials
fix Mul._eval_is_rational
Add _eval_simplify helper for AlgebraicNumber

fixes #4401
Merge pull request #8383 from cbm755/ineq_simplify_tests

Inequalities: test for simplifying
Equality: use rewrite example in docstring
Merge pull request #1 from smichr/rat

fix Mul._eval_is_rational
Assumptions: 7993 test use is not "=="
Merge pull request #8381 from cbm755/eq_docstring

Equality: add examples to docstring
watch out for algebraics with functions (they can be slow)

Should this be a criteria in equals to keep minpoly from running
if the number has functions in it?