_test -> _doctest in runtests
additional bounded -> finite changes
add docstring to as_dummy()
do not use bare </> tests of things which might not be Numbers
modify assumptions

It is currently possible to create a meaningless set of assumptions:

    neither
        Dummy(zero=True, finite=False) nor
        Dummy(zero=True, infinite=True)
    raise an error.

    If we assume finite == !infinite in assumptions, we
    create an alias: finite=False is the same as infinite=True
    and vice versa. We don't want to do that. What we want is
    behavior like integer and noninteger:

    Dummy(integer=0) is not the same thing as Dummy(noninteger=1).
    A noninteger is commutative, complex, hermitian, noninteger,
    nonzero, and real while integer=0 is only commutative -- nothing
    else is known about it (other than that it is not 0).

    /!\ In general, it is much easier to comprehend what one means
    by using only true attributes to desccribe it. If something is
    not zero but still complex, say nonzero=True instead of zero=False.

    So assumptions.py has been modified to make the following true:

    ```
    finite   : 0 < abs(x) < oo
    finite  : 0 <= abs(x) < oo
    infinite : abs(x) == oo
    ```

    The same is also true for zero and nonzero. If nonzero is True you
    are talking about a complex number that is not zero. But if zero is
    False you are only talking about a commutative object that is not
    zero.

    In addition, we now use is_infinite = True not is_finite = False
    in the few places where this is defined. The former is an affirmation
    of what the object *is* not an indication of what it is not.

In addition, nonzero is also made to be complex and rationals and integers
are now marked as finite. The new assumption nzfinite was added to
describe a number with 0 < abs(x) < oo.
remove redundant attributes of numbers
remove redundant clause testing for NaN after finite test
modify Mul._eval_is_* routines
modify assumption use
modify Add._eval_is_* routines
modify and add tests
make assumptions resolution order deterministic
randomize traversal of facts