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
mark slow wester tests; unXFAIL K2
remove is_hermitian property from matrices
add tests for _fuzzy_group*
fix Mul._eval_is_zero and remove Mul._eval_is_nonzero
merge with real2
Merge pull request #7923 from smichr/real5

add some numerical handling to Pow imaginary/real handlers