add utility methods get_groups() and iter_groups() to class _GroupBy
- [ ] closes #xxxx
- [ ] tests added / passed
- [ ] passes `git diff upstream/master | flake8 --diff`
- [ ] whatsnew entry

added utility methods get_groups() and iter_groups() to groupby objects 

## [Current coverage](https://codecov.io/gh/pydata/pandas/pull/14075?src=pr) is 85.27% (diff: 100%)

> Merging [#14075](https://codecov.io/gh/pydata/pandas/pull/14075?src=pr) into [master](https://codecov.io/gh/pydata/pandas/branch/master?src=pr) will increase coverage by **<.01%**

``` diff
@@             master     #14075   diff @@
==========================================
  Files           139        139          
  Lines         50455      50459     +4   
  Methods           0          0          
  Messages          0          0          
  Branches          0          0          
==========================================
+ Hits          43026      43030     +4   
  Misses         7429       7429          
  Partials          0          0          
```

> Powered by [Codecov](https://codecov.io?src=pr). Last update [6645b2b...5aef79c](https://codecov.io/gh/pydata/pandas/compare/6645b2b11a82343e5f07b15a25a250f411067819...5aef79ccfa56bf64f88c59f6f7c4bf6ae5f469a6?src=pr)
 What usecase are you trying to solve here?  Iterating a `groupby` object already yields the groups - does this do something different?

```
In [24]: df = pd.DataFrame({'a': [1,1,2,2,3,3]})

In [25]: for key, sub_df in df.groupby('a'):
    ...:     print(sub_df)
   a
0  1
1  1
   a
2  2
3  2
   a
4  3
5  3
```
 oh, lol, that's all I really wanted.   For some reason it didn't occur to me you could just iter() it.
