BUG: fixed wrong order of ordered labels in pd.cut()
 - [x] closes #16459 
 - [x] tests added / passed
 - [x] passes ``git diff upstream/master --name-only -- '*.py' | flake8 --diff``
 - [ ] whatsnew entry

Changes to how `cut` instantiates `Categorical` when a list of labels are passed to it, and the `test_cut_pass_labels` test for it. If labels are passed in as a `Categorical` already, behavior isn't altered at all, but if the user specifies a list of labels, the rank ordering of those labels is preserved in `cut`.
