Refactor Relational to avoid long hanging evaluations.

Only call diff.equals(0) if we have a nonsymbolic expression.
hydrogen.py: Use Eq(i, i.doit()) again.
Merge pull request #1831 from jrioux/relational

Refactor Relational to avoid long hanging evaluations.

This fixes the underlying issue from the slow hydrogen.py example file: Relational should try not to do more evaluation than it needs to.