ENH: Allow the groupby by param to handle columns and index levels (GH5677)
- [x] closes #5677
- [x] tests added
- [x] rebase after #14342 is merged to fix #14334
- [x] tests pass (requires rebase above)
- [x] passes `git diff upstream/master | flake8 --diff`
- [x] whatsnew entry
- [x] updates existing documentation
- [x] add example to whatsnew 0.20 and groupby.rst

Change to allow strings passed as the `by` parameter to `df.groupby` to reference columns (existing behavior) or index level names if no column match is found.  Columns take precedence in the case of ambiguity to maintain backward compatibility.
