REF: EA quantile logic to EA._quantile
- [ ] closes #xxxx
- [ ] tests added / passed
- [ ] Ensure all linting tests pass, see [here](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit) for how to run them
- [ ] whatsnew entry

> (the dual use case as base class for internal usage vs external usage is sometimes a bit conflicting ..)

i sympathize with this

> Is it really annoying to have the code in array_algos/quantile.py ?

A bit, yes.  The idea of array_algos is to not depend on EA implementation details (the docstring in `array_algos.__init__` hints at this).  More importantly, the special-treatment of pandas-internal (i.e. MaskedArray and a bit more subtly Sparse) is a pattern we've been trying to avoid.  I don't see any other way around this, am open to ideas. > though anyway to combine some of the added code that is in base & masked?

there might be, but i haven't found it.  trouble is we call the constructors differently in the masked code
