Add GroupBy.gmean() and GroupBy.gstd()
#### Code Sample, a copy-pastable example if possible

Calculating the arithmetic mean and arithmetic standard deviation using `GroupBy` objects can e.g. be done like 

```
df = pd.DataFrame(
    columns=[0.0, 0.1, 0.2, 0.3, 0.4],
    data=[[0, 1, np.nan, 1, 9],
          [np.nan, np.nan, np.nan, np.nan, 9]]
)

bins = pd.IntervalIndex.from_tuples([(0.0, 0.2), (0.2, 0.4)])

def mean_and_std(df, bins):
    cuts = pd.cut(df.columns, bins, include_lowest=True)
    return df.T.groupby(cuts).agg(['mean', 'std']).T

mean_and_std(df, bins)
```

which gives

```
            (0.0, 0.2]  (0.2, 0.4]
0   mean    1.0         5.000000
    std     NaN         5.656854
1   mean    NaN         9.000000
    std     NaN         NaN
```
.

#### Problem description

Using `GroupBy` objects is a common option during data binning operations. It's particularly important if dataframes to be processed are big which can be handled with parallel proccessing. E.g. seems like [Dask supports GroupBy objects](https://examples.dask.org/dataframes/02-groupby.html). The geometric mean and the geometric standard deviation are quite common statistic quantities. Unfortunatelly [`GroupyBy`](https://pandas.pydata.org/pandas-docs/stable/reference/groupby.html#computations-descriptive-stats) does not support `gmean()` and `gstd()` (yet). Implementing a performant workaround with e.g. [scipy.stats.mstats.gmean()](https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.mstats.gmean.html) and [scipy.stats.gstd](https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.gstd.html()) from scratch feels boilerplate and does not support bultin support for parallel processing.