Refactor index-as-string groupby tests and fix spurious warning (Bug 17383)
- [x] closes #17383 
- [x] tests added / passed
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

Test case refactoring:
  - Moved the existing  index-as-string test cases out of `test_groupby.py` and into a new `test_index_as_string.py` file
  - Extracted test data generation functions and parameterized existing test cases to clean them up and shorten them.
  - Added a new parameterized test case on a `Series`
  - Updated `test_grouper_column_index_level_precedence` to reproduce false warning problem as described in #17383 
  - Updated `test_grouper_column_index_level_precedence` to verify when warnings should **NOT** be raised (Results in a test failure due to #17383 without this fix)
