Clean up Abstract and Naming Definitions for GroupBy
Summary of changes:

  - Made `_iterate_slices` abstract in base class, moved pre-existing definition from Base -> Series where it was actually being called (DataFrame already overrides)
  - Made `_wrap_transformed_output` Abstract in base class, as both Series and DataFrame override this
  - Redefined `_wrap_applied_output`; this was Abstract in base class before but its definition was not in sync with how the subclasses actually defined
  - Renamed `_wrap_output` to `_wrap_series_output` as it is only valid for SeriesGroupBy
  - Renamed `_wrap_generic_output` to `_wrap_frame_output` as it is only valid for DataFrameGroupBy
  - Renamed `_aggregate_generic` to `_aggregate_frame` as it is only valid for DataFrameGroupBy

More to come in separate PRs
