BUG: DataFrame.sort_index broken if not both lexsorted and monotonic in levels
closes #15622
closes #15687 
closes #14015
closes #13431

nice bump on Series.sort_index for monotonic
```
    before     after       ratio
  [37e5f78b] [a6f352c0]
-    1.86ms   100.07μs      0.05  timeseries.TimeSeries.time_sort_index_monotonic
```

