cleanup some bounded usage and arg traversals
do not add tests that are not prereq

It is important not to add prerequisites to a result that are
not consistent with the assumption rules. This can lead to facts
being missed, something that will be intermittent in nature depending
on the order in which the assumptions are traversed to resolve the fact.

for example:

>>> from sympy.core.assumptions import _assume_rules as R
>>> print filldedent(R.prereq['imaginary'])

set(['real', 'prime', 'irrational', 'antihermitian', 'nonpositive',
'composite', 'zero', 'integer', 'odd', 'even', 'commutative',
'positive', 'noninteger', 'negative', 'nonnegative', 'complex',
'rational'])

Having an answer to nonzero is not a prerequisite of knowing the
`imaginary` fact. The same is true for antihermitian.

>>> print filldedent(R.prereq['antihermitian'])

set(['imaginary'])
only allow super call if self is real
flatten Add at start of relevant _eval_is_* routines