BUG: make tz_localize operate on values rather than categories
- [x] closes #27952
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

this also needs a bit more general testing, try to add a few more accessor functions that you are testing. Thanks @jbrockmendel and @jreback for your comments.

I've moved the location of the tests to indexes/test_category and have removed the `to_list` call. However, I am using `.__array__()`. Is this also expensive?

I can't see how to keep `data` as a Series with CategoricalDtype, because then I'm blocked by #28448 . @TomAugspurger @jbrockmendel @jreback thanks for your reviews. Now that #28762 has been closed, I've been able to push a solution to this which doesn't involve `np.asarray` and IMO is a marginally cleaner.

Is this something you're still interested in? Should the return type (and thus the documentation) be changed as well?

If not, no worries, thanks for the time you've already dedicated to helping me, feel free to close it :) sure this still makes sense @MarcoGorelli can you rebase and we'll take a fresh look and try to get this through Sure, done @jreback Sure, here you go thanks @MarcoGorelli nice patch!