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`.
A test would be

```
n = -5 + sqrt(2) - sqrt(3)
# if the following assertion fails, a new value of n for which it doesn't should be added
assert n.is_integer is None and (n + 1).is_nonegative is False
assert factorial(n).is_integer is None
```