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`.
> because if either is None, the answer should be None, not False, right?

?

```python
In [1]: None and False

In [2]: (None and False) is None
Out[2]: True

In [3]: x.is_integer and x.is_real
```

> but since we can get it right, let's do so.

Let's don't without good reasons.


```python
In [4]: n=-5+sqrt(2)-sqrt(3)

In [5]: n.is_integer and (n + 1).is_nonnegative

```