PERF: DataFrame.groupby.nunique
closes #15197

```
In [2]: %timeit df.groupby(['key1', 'key2']).nunique()
100 loops, best of 3: 9.31 ms per loop
```

```
    before     after       ratio
  [be3f2aea] [6d026165]
-  473.67μs   427.27μs      0.90  groupby.GroupBySuite.time_nunique('float', 100)
-     4.41s     9.53ms      0.00  groupby.groupby_nunique.time_groupby_nunique

SOME BENCHMARKS HAVE CHANGED SIGNIFICANTLY.
```