Fixups for categoricals

This PR will collect the various fixups for Categorical.

See #8078 for the ToDos.

In the end should Close: #8074


Closes: #8077 -> API/FIX: wrap result cut/qut in Series and make it ordered
`assert_series_equal` does not check for the orderedness of the Categorical at the moment, so the test will not check that part of the issue:
```
In [125]: c1 = pd.Series(pd.Categorical(list('abcdaba'), ordered=True))

In [127]: c2 = pd.Series(pd.Categorical(list('abcdaba'), ordered=False))

In [129]: pd.util.testing.assert_series_equal(c1, c2)
```

But maybe that is for a seperate issue if this should test that or not.