ENH: support masked arrays in groupby cython algos
Similarly as for normal reductions (eg https://github.com/pandas-dev/pandas/pull/30982), we should investigate having masked array-specific support in the groupby algorithms. 

Currently, when starting from a nullable extension array, they get converted to a numpy array (eg integers with missing values will typically get cast to float with nan) before passing to the cython algorithm. 
Having support for passing a mask to the cython algos can improve the groupby support for nullable dtypes.

* [x] `any` / `all` (correctly pass mask + add Kleene logic) -> https://github.com/pandas-dev/pandas/pull/40819
* [x] `cummin` / `cummax` -> https://github.com/pandas-dev/pandas/pull/40651
* [ ] `cumsum` / `cumprod`
* [ ] `sum` / `prod` / `var` / `mean`
* [x] `min` / `max` -> https://github.com/pandas-dev/pandas/pull/42567
* [ ] `median`
* [ ] `ohlc`
* [ ] `quantile` (correctly pass mask)
* [ ] `last` / `nth`
* [ ] `rank`