Expr: inequalities try to reduce to bool using simplications

New commit log to use for the squash:

Previously, `Lt` had code which tried to simplify---even `evalf`---to
try to reduce an expression to a boolean.  This was called `.eval_sides`.
We do something similar in the `Expr.__lt__` (and other inequalities);
we compute the difference and if it has no symbols, we try to simplify
and then compare to zero.  The `Rational.eval_sides` code also tried
`.evalf` in this case; we don't do so here although we could.  Hopefully
this restores `Lt` simplifying behaviour in all cases that worked before,
and now `<` will benefit as well.