BUG: Change IntervalDtype.kind from None to "O"
- [X] closes #30568
- [X] tests added / passed
- [X] passes `black pandas`
- [X] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [X] whatsnew entry

This is partially blocking #28399 as tests are failing there due to `kind` being `None`.

cc @TomAugspurger 

could add a test to the interface tests requiring that dtype.kind be a 1-character str? There's an existing test for `dtype.kind` that allows for it to be `None` but otherwise checks that it's one of the valid single character string values:

https://github.com/pandas-dev/pandas/blob/fd7db9819b8c7dba86b2887bee33f670b2715afc/pandas/tests/extension/base/dtype.py#L17-L20

I removed the `if` block and all the tests are passing for me locally, so I've pushed the change here too.  Not sure if there's a specific reason it was written that way and we'd want to allow `None` though, so can revert if we want to still allow it.  Given that `None` can cause things to break I think we'd want to disallow it though. Thanks!