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
quicker exit for Pow imaginary handlers
add some numerical handling to Pow imaginary/real handlers

I do not know how to add the same thing to the new assumptions
since arg must be computed and whether it comes back evaluated
or not depends on arg's use of the old assumptions. So

var('x');ask(Q.real((x - I*x)**2), Q.positive(x))

will not evaluate properly unless one *also* does var('x', positive=1).
add Mul.is_nonzero handling
add Pow._eval_is_complex routine
replace _eval_template_is_attr with fuzzy_group
add fuzzy_group_inverse and modify function parameters
remove use of nonzero in _eval_is_(real/imaginary)
use fuzzy_group in test_closed_group
change fuzzy_group keyword from wait to quick_exit
remove redundant parentheses
add is_hermitian to Matrix and SparseMatrix [needs tests]
make fuzzy_group* private
minor edits