ENH: Nullable integer/boolean/floating support in lib inferencing functions
Precursor for #40687 

@jreback Not sure I follow here. I'm just following
> hmm can we simply make the return value _always_ a tuple, e.g. (values, mask) where mask could be None

so that would be tuple[np.ndarray, np.ndarray | None]. We are not returning the masked EA directly since it is an anti-pattern.

 thanks @lithomas1 

if you wouldn't mind doing a PR to add doc-strings to the maybe_* routines, the issue is the Returns is now not super obvious.

thanks. Thanks a lot @lithomas1 !