BUG: quantile for ExtensionArray
- [ ] closes #xxxx
- [x] tests added / passed
- [x] Ensure all linting tests pass, see [here](https://pandas.pydata.org/pandas-docs/dev/development/contributing.html#code-standards) for how to run them
- [ ] whatsnew entry

I _think_ this should work for arbitrary EAs, but we only have tests for sparse, dt64tz, and this adds Period (and some untested cases for dt64tz)

Part of the idea is to get the code out of the Block method for ArrayManager compat.
hmm Interval breaks.

im inclined to leave testing the masked dtypes to @jorisvandenbossche  I think it is important to add *some* basic testing for the different EAs we have internally. Because right now `quantile` works for eg Float64 (by coercing to a numpy array internally, I assume). And thus we need to ensure we don't break that behaviour (I think the current PR does so)  BTW, I think it is perfectly fine to start with something that "works for us", without having it a fully general mechanism for external ExtensionArrays) lgtm. thanks. As mentioned above, this actually breaks it for nullable float/integer (which were working before)