Ensure _group_selection_context is always reset
Context managers will resume with an exception if the with block calling them fails.
This happening is not an excuse to not clean up.

- [ ] closes #xxxx
- [ ] tests added / passed
- [ ] passes `black pandas`
- [ ] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

Found by inspecting the code, not by actually finding a failing example.
