Binary ineq like `<` should give same as functional forms `Lt`

Is this the right fix for underlying issue in pr #7783?

- [x] pass tests from #7783 
- [x] pass rest of `test_relational.py`
- [x] make sure non-evaluated but potentially evaluatable still works.  E.g., things like:
````
e = Lt(7,7, evaluate=False)
e.doit()
````
- [X] Make sure `e = Lt(x,y); e.doit()` takes same path.   update: it does.
- [X] consider removing `_eval_sides` from code, or make it specific to the Equality/Unequality.  Update: for now, I call it from `Expr.__lt__` (which may not be the "cleanest" given that its a `_` method.)
- [x] consider the broader test suite.
- [x] There is bound to be some fallout...  Update: surprisingly little so far, all changes local to `expr.py` and `relational.py`.
- [X] Consider: Could `lhs.__lt__(rhs)` return None?  `Equality` and `_eval_Eq` use this but `__lt__` is not a helper function so not sure its useful here...  Update:  current approach seems to be working.
- [x] Are any documentation changes needed?  E.g., should the docs contain something like my explanation of the approach given in the commit message?  No: there are comments in the code and the documentation in `GreaterThan` already implies `>` should be the same.
> why not move this little helper out of the relational.py. It's now used in the expr.py only, right?
> Second. The code right above - also does something like _eval_sides. [...]

@skirpichev: this is non-trivial.

1.  Tests fail without the `dif` lines.  It is (currently) needed for assumptions, e.g., `Symbol('p', positive=True) > 0` should give true.  Removing it leads to failed tests.

2.  `_eval_sides` really is an eval (as the docstring makes clear).  Not obviously to me what it is supposed to do with assumptions.

3.  `_eval_sides` is used by `Equality` class, where it serves as similar purpose.  So not obvious I should rip it out of there (nor duplicate the same code in `expr.py`).

I think I'd prefer to leave this for now: certainly a bit of a rework would be good but does not have to be done to satisfy the goal of this pr.  I've left comments to that effect.

Is that ok?