Less automatical evaluation for Equality, improve simplification

fixes #6116

see also #7960
> > if dif is pi, then if dif.is_Number is False...?
> Yes.
... and therefore I don't think `is_Number` belongs here (`is_number` maybe, although see next).

I think line 88 and 89 should be:
````
if dif.is_real or self.func in (Eq, Ne)):
    r = self.func._eval_relation(dif, S.Zero)
````
(indented inside the `isequal(0)` block.)

And +1 to changing L82 to `dif.is_number`.

(._eval_relation uses `==` for `Eq` so should not be called for non-numeric things but here dif has either `.is_number` True or is the output of evalf.)