REF: Implement BaseMaskedArray class for integer/boolean ExtensionArrays
Todo item of https://github.com/pandas-dev/pandas/issues/29556, consolidating common code for IntegerArray and BooleanArray.

This is only a start, there is more to share.
Thanks for starting this. Just out of curiosity did you ever consider implementing this as a Mixin? I suppose the advantage of that versus something like this would be it theoretically allows EA authors to compose masked extension types without having to worry about class hierarchies For now, this is not supposed to be public (actually, I just didn't consider that yet, that can certainly be a discussion). For internal use, it doesn't really matter much? What would be the advantage of a mixin in that case? For me (being less exposed to the EA stuff) a mixin just seemed a more natural way to add a mask. Let's see what others think For now, I think just straight inheritance from EA is best. With a mixin, we'd need to include a bunch of the EA interface anyway to get this to work (dtype, isna, etc.) > can you comment on what is not just a straight cut/paste

Everything is still a straight cut and paste, except for:

- The `_internal_fill_value` class member, which is used in `take`
- I edited the `to_numy` docstring a little bit to be generic for both datatypes > This is only a start, there is more to share.

@jorisvandenbossche were you planning to move any more methods in this PR, or should we merge this and do more as followups? Something like `_create_comparison_method` *may* be sharable but will be a be tricky. Might warrant its own PR. this ready? thanks @jorisvandenbossche 