DOC/CLN: move NDFrame.groupby to (DataFrame|Series).groupby
By moving this method up to dataFrame/Series, we get better doc strings and more precise type hints.

Makes sense. Can we get rid of the `get_grouper` function altogether as part of this? get_groupby is used in ``Resampler``, so its used elsewhere. @topper-123 IIUC the `get_groupby` usage in Resample sends the object as an argument so with this refactor wouldn't we just be able to change code like:

```python
grouped = get_groupby(subset, by=None, grouper=grouper, axis=self.axis)
```

To 

```python
subset.groupby(by=None, grouper=grouper, axis=self.axis)
```

? I think would be good to go all the way on that cleanup if so @WillAyd , good observation, I've removed ``get_groupby`` from the code base in the newest version.

I've also renamed ``grp_generic`` to ``groupby_generic`` to make it's content a bit clearer.  @WillAyd , looking more into it, that doesn't work after all, because the signatures to ``get_groupby`` and ``(DataFrame|Series).groupby`` are different. E.g. ``.groupby`` does not have parameters ``grouper`` and ``exclusions`` etc.

I'll revert the removal of ``get_groupby``. Is this ok to merge? Notice that ``DataFrame.groupby`` doesn't have a grouper argument, while ``DataFrame.GroupBy`` does, so calling the the two are not equivalent. Hmm so I think would be nice if we replaced `get_grouper` and aligned signatures; as it currently stands I'm not really sure this adds much though by moving the functions from the base class to subclasses so +/-0 on the change but let's see what @jreback thinks
 ok with aligning signatures but in a dedicated PR I've rebased the PR.

I'm not sure I understand how the signatures can be aligned: e.g. ``GroupBy`` has a ``grouper`` argument, which ``NDFrame.groupby`` doesn't have. I don't think it's a good idea to add the internal parameters of ``GroupBy`` to the public-facing ``NDFrame.groupby``. > I've rebased the PR.
> 
> I'm not sure I understand how the signatures can be aligned: e.g. `GroupBy` has a `grouper` argument, which `NDFrame.groupby` doesn't have. I don't think it's a good idea to add the internal parameters of `GroupBy` to the public-facing `NDFrame.groupby`.

yeah I am now confused on what was said about aligning things. The Grouper and GroupBy are different things here.

thanks for the PR.