Change _can_hold_na to a class attribute and document that it shouldn't be changed
- [x] closes #20761
- [x] tests added / passed
  - removed tests dependent on `_can_hold_na`
- [x ] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry
  - not needed because it is part of `ExtensionArray` support new for v0.23

Replaces pull request #20815 (see discussion there for reasoning)

@TomAugspurger It seems that you made the change that @jreback asked for.  Anything else for me to do? Nope, we're good. Thanks!.