CLN/PERF: group quantile
Inspired by idea from @jbrockmendel in https://github.com/pandas-dev/pandas/pull/43489#discussion_r705868510.

Didn't end up seeing a huge perf improvement though, for example results on a wide frame:
```
arr = np.random.randn(10 ** 5, 100)
df = pd.DataFrame(arr)
gb = df.groupby(df.index % 3)
gb.quantile(0.5)
# this pr: 1.18 s ± 9.58 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
# master: 1.55 s ± 10.1 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
```
Based on a quick profile, almost all time is spent in `lexsort` on master or with this pr - seems lexsorting the entire block at once has comparable performance to going column by column (I guess more improvement would show up on a _really_ wide frame).

Regardless, though, I think moving this out of cython is an improvement (since gives no perf benefit for them to be in cython when just numpy functions, also saves ~80kb on compiled code).
thanks @mzeitlin11 