modify Add._eval_is_* routines
modify wester test
add tests and modify existing tests
let _unevaluated_Add collect numbers, too
do not call self.is_* from _eval_is_* routines

I am not sure about the ramifications but my hunch is that
if, when trying to resolve fact foo, an _eval_is routines
calls self.is_bah -- and bah is not actually a prerequisite
of foo -- that this might interrupt the resolution of fact
foo. At least, using the _eval method will result in a faster
resolution of the fact without running through prerequisites
of the fact. But again...I'm not even sure that's a good idea.
I'm not sure how much of the burden of knowing what to call
should be the responsibility of the _eval_is routines and how
much should be handled by the assumption machinery. (I know the
machinery will handle prerequisites, but it is not clear how
to effectively write the _eval_is routines so they are not
working too hard.
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'])
flatten Add at start of relevant _eval_is_* routines

also make sure Expr._eval_is routines don't use self.is_
or else you will get a recursion error with the added test
involving f(0).
8081 negative ints (all but -1) are composite
randomize traversal of facts

This may help to expose errors in _eval_is routines that apply
constraints to the solution that are not in the prerequisites for
a fact.
transcendental: irrational & !algebraic

This is in accordance with the definition at wolfram alpha
introduce and test finite_real assumption

TODO: rename real to extended_real (or similar)
and name finite_real to real.