BUG: Fix Series.sort_values descending & mergesort
The solution uses the `nargsort` function, which was created to handle
in one place the intricacies of sorting. Not adapting Series.sort_values
to use may have been an oversight.

- [ ] closes #28697
- [ ] tests added / passed
- [ ] passes `black pandas`
- [ ] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

> it’s possible some existing test are off because this path is not exactly the same as nanargsort (but we do want to unify)

Yes that is the case. Now for quicksort, the ascending and descending sort are not guaranteed to be reversed versions of each other.

```python
n = 100000
np.random.seed(123)
values = np.random.randint(0, 4, n)
idx = np.arange(n)
s = pd.Series(values, index=idx)
asc = s.sort_values(ascending=True)
desc = s.sort_values(ascending=False)
asc.index.equals(desc.index[::-1])  # False ( without nanargsort it is True)
```

Many tests for `Series.value_counts` -- which are failing -- rely on checking the index, which is arbitrary (https://github.com/pandas-dev/pandas/pull/24302). @has2k1 can you rebase Closing as this looks stale, but certainly @has2k1 ping if you'd like to pick back up