Don't use new assumptions in the sets module
Implement a symbolic object for the relation "is an element of"

1. fixes #6194
2. contains methods of set classes were modified to return
   BooleanAtom's, not True/False
Printing support for Contains class
Fix some asserts to check if foo.contains(bar) is S.true
Remove .is_infinitesimal assumption
Merge pull request #7989 from skirpichev/contains

Implement a symbolic object for the relation "is an element of"
Merge pull request #7995 from skirpichev/remove-is_infinitesimal

Remove .is_infinitesimal assumption
fix is_zero detection on Mul._eval_is_* tests

Once a None is obtained for is_zero, it should no longer be updated.
The return value must consider the value of is_zero. This can
change if S.Zero.is_imaginary = S.Zero.is_real = True is ever true.

The routines were shortened a bit, too.
Small improvments for Mul._eval_is_real/imaginary

1. removed fuzzy_not import (it's redundant)
2. slight formatting changes
3. add an early exit if t is not a complex number
4. renamed: is_zero -> zero (like the real variable)
5. simplify "if real and is_zero is False" branch of _eval_is_real
Make Mul._eval_is_hermitian/antihermitian like Mul._eval_is_real/imaginary
Change is_integer/positive/real to _evals_is_* helpers
add Mul.is_nonzero handling
revert complex handling in Mul._eval_is_(real|imaginary)
fix Mul._eval_is_imaginary
simplify Mul.is_imaginary routine
clean up tests
simplify Mul.is_antihermitian routine
affirm some basic assumptions wrt real/imag/complex
add quick exit if factors are not complex
restore quick exit at end of loop