8294: keep sorting of roots but remove sorting in private methods of polyroots

closes #8294 
fixes #8285 - although there are things that are not implemented, e.g.

```
>>> p=Poly([-8, -7, -9, 1, -6, -5, -4, -6, -5, -4],x)
>>> p.all_roots()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "sympy\polys\polytools.py", line 3341, in all_roots
    roots = sympy.polys.rootoftools.RootOf.all_roots(f, radicals=radicals)
  File "sympy\polys\rootoftools.py", line 148, in all_roots
    return cls._get_roots("_all_roots", poly, radicals)
  File "sympy\polys\rootoftools.py", line 512, in _get_roots
    for root in getattr(cls, method)(poly):
  File "sympy\polys\rootoftools.py", line 450, in _all_roots
    complexes = cls._complexes_sorted(complexes)
  File "sympy\polys\rootoftools.py", line 319, in _complexes_sorted
    complexes = cls._refine_complexes(complexes)
  File "sympy\polys\rootoftools.py", line 299, in _refine_complexes
    u = u._inner_refine()
  File "sympy\polys\rootisolation.py", line 1846, in _inner_refine
    D_L, D_R = _vertical_bisection(1, (u, v), (s, t), I, Q, F1, F2, f1, f2, dom)

  File "sympy\polys\rootisolation.py", line 1345, in _vertical_bisection
    T_L = _traverse_quadrants(Q_L1_L, Q_L2_L, Q_L3_L, Q_L4_L, exclude=True)
  File "sympy\polys\rootisolation.py", line 1170, in _traverse_quadrants
    raise NotImplementedError("2 element rule (inside): " + str(qq))
NotImplementedError: 2 element rule (inside): ('Q3', 'Q3')
```

there are expressions that formerly failed that can be handled successfully now so I am marking the issue as closed
fixes #8316
closes #8306