sort roots in roots_binomial and roots_quadratic

These two routines supply roots to _roots_trivial which expects
the results to be in the same order as the RootOf instances. Although
the sorting could take place in _roots_trivial, all the information
about the roots is in these routines so it makes sense to sort them
in that information-rich context. In order to keep this fast, no numerical
calculations were made.
cache _roots_trivial

Without caching, the roots have to be recomputed each time a new
indexed value of a RootOf instance is requested.
reverse roots in inequalities; add tests