factorial of non-integer may be integer

Before this fix, the following code:
```python
>>> r = Symbol('r', integer=True)
>>> factorial(r).is_integer
```
would have returned `False`. However, a factorial of a non-integer number may indeed be integer, it's just hard to figure out when exactly. For example,
```python
>>> factorial(2.8523554580317278316429981)
5.00000000000000
```
means that there is a (probably non-rational) number whose image under the factorial function is *exactly* the integer 5.