REF: Share NumericArray/NumericDtype methods
- [ ] closes #xxxx (Replace xxxx with the Github issue number)
- [ ] [Tests added and passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#writing-tests) if fixing a bug or adding a new feature
- [ ] All [code checks passed](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit).
- [ ] Added an entry in the latest `doc/source/whatsnew/vX.X.X.rst` file if fixing a bug or adding a new feature.

> Any recommendations on where to start? Would I need to essentially create MaskedArrowArray and go from there?

I've been thinking we should refactor as much of ArrowStringArray as possible out into a general arrow-backed EA.  Not sure if that could be a fully-formed EA or if it would need to be a mixin.  (also in the tests there's an ArrowExtensionArray but I think its half-baked)

FWIW my current thought with MaskedArray is to try to get as much of NumericArray and BooleanArray pushed down into MaskedArray as possible so it can just become a wrapper around an arbitrary non-masked array (including e.g. other EAs) luv it