Factorial2 (!!) of an integer is an integer

`factorial2` of an integer is now known to be an integer. This is done via an implementation of `_eval_is_integer`.
Why you can't just use:
```python
m  = Symbol('m', nonnegative=False)
assert factorial2(m - 1).is_integer is False
```
?