BUG: Add unordered option to pandas.cut (#33141)
Added tests and error message when there are no labels and `ordered=False`.

Issue: Pandas cut raises error if labels are non-unique (Closes #33141)

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

- Updated the documentation in `pandas.cut`.
- Added an example.
- Run the documentation validation script.
- Also added a new line in bugs -> reshaping. Should a new line about the new functionality be added in the `Enhancements` section? cc @pandas-dev/pandas-core  Updated:
            labels = Categorical(
                labels,
                categories=labels if len(set(labels)) == len(labels) else None,
                ordered=ordered,
            )

 Updated:

```python
            labels = Categorical(
                labels,
                categories=labels if len(set(labels)) == len(labels) else None,
                ordered=ordered,
            )
```

instead of:
```python
            labels = Categorical(
                labels,
                categories=labels if ordered else None,
                ordered=ordered,
            )
```

since we need to also handle the case of unordered labels. We just need to avoid passing duplicates labels to categories and also raise an error when we are using `ordered=True` and  there are duplicate labels.  thanks @mabelvj very nice!