CLN: type annotations in groupby.grouper, groupby.ops
@simonjayhawkins mypy is still giving a couple of complaints I could use your help sorting out:

```
pandas/core/groupby/ops.py:791: error: Signature of "groupings" incompatible with supertype "BaseGrouper"
pandas/core/groupby/ops.py:872: error: Argument 1 of "_chop" is incompatible with supertype "DataSplitter"; supertype defines the argument type as "NDFrame"
pandas/core/groupby/ops.py:884: error: Argument 1 of "_chop" is incompatible with supertype "DataSplitter"; supertype defines the argument type as "NDFrame"
```

For the groupings complaint, AFAICT the attribute has the same annotation, but in the subclass its a property instead of defined in `__init__`.  For the other two, I annotated an argument with `NDFrame` in the base class and overrode with `Series` and `DataFrame` in the subclasses.  What is the preferred idiom for this pattern?
Any issues remaining here? > Any issues remaining here?

I think should use py3.6 syntax for variable annotations going forward and would also prefer to not to see changes to .format but use f-strings instead.  > I think should use py3.6 syntax for variable annotations going forward and would also prefer to not to see changes to .format but use f-strings instead.

3.6 annotations ill try to get in the habit of.  f-strings are going to take some getting used to > f-strings are going to take some getting used to

just thinking it'll reduce churn as they are likely to be updated anyway. so why makes changes twice? > just thinking it'll reduce churn as they are likely to be updated anyway. so why makes changes twice?

No reason at all.  That doesn't change the whole "I'm an old man and change will take some getting used to" thing. rebased+green lgtm (ex one comment), @WillAyd  Thanks @jbrockmendel