modify is_real to watch for numbers

The old assumptions system cannot handle determination of a range for a non-number so the following fails:


```
>>> var('x', real=True)
x
>>>
>>> acos(x).is_positive
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "sympy\core\assumptions.py", line 144, in getit
    return _ask(fact, self)
  File "sympy\core\assumptions.py", line 197, in _ask
    _ask(pk, obj)
  File "sympy\core\assumptions.py", line 187, in _ask
    a = evaluate(obj)
  File "sympy\functions\elementary\trigonometric.py", line 1567, in _eval_is_real
    r = self.args[0].is_real and (self.args[0] >= -1 and
  File "sympy\core\relational.py", line 112, in __nonzero__
    raise TypeError("symbolic boolean expression has no truth value.")
```