BUG: Index(categorical, dtype=object) not returning object dtype
- [ ] closes #xxxx
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

In master we get a `CategoricalIndex` back.

Fixing this turns out to be pre-requisite to fixing a bug in `CategoricalDtype._from_values_or_dtype`, which in turn is needed to simplify the CategoricalIndex constructors (xref #32141)
lgtm. rebase and ping on green. let's rebase this (as merged other 2 PRs) rebased+green thanks