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
Yes, in this sense `labels` is used a lot throughout pandas (eg in MultiIndex.labels). 

But *exactly* for that reason, I would change the name `labels` to `levels/categories`. Because now, you normally provide a list of categories/levels to ``labels`` (and so *not* labels as it is used elsewhere, and also not how it was used in Categorical, because there it was what is now called `codes`). Only when providing `labels=False` (which I would interprete as 'no labels'), the output becomes something label-like .. (in the sense how it is used elsewhere in pandas).