(continued from #8403) changing assumptions

## Motivation
It is currently possible to create a meaningless set of assumptions (fixes #8075):

neither
```
    Dummy(zero=True, finite=False) nor
    Dummy(zero=True, infinite=True)
```
raise an error.

### results

```
>>> Dummy(integer=1).is_finite
True <--formerly None
>>> oo.is_rational
False <--formerly None
```

## major changes
- nonzero, finite and infinite are all complex
- nan has all attributes except `is_number` and `commutative` as False
- integers are now finite (hence oo.is_odd and other such integer properties are False)
- 16 of 17 issues in #8043 are addressed
- 2 XFAILed tests are now working
- about 7 tests with wrong results were corrected
- fixes #8081
- fixes #8088 

## todo

- [ ] fix Add._eval_is_imaginary so XFAILed test passes
On Sun, Sep 28, 2014 at 11:41:05AM -0700, Christopher Smith wrote:
>    It's just a verbatim application of the definition from wolfram alpha: an
>    irrational that is not algebraic.

I see a different output:
http://www.wolframalpha.com/input/?i=irrational&dataset=

3 | noun | a real number that cannot be expressed as a rational number

http://www.wolframalpha.com/input/?i=irrational+number

c.f.
http://www.wolframalpha.com/input/?i=transcendental+number