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

Extracted dictionary parts to `agg_dict_like`, and changed from `isinstance(arg, dict)` to `is_dict_like(arg)`. Also renamed `aggregate_multiple_funcs` to `agg_list_like`.
Docstrings aren't quite right here; obj can be other types. Hold off on merging. Tests pass when adding the following line to aggregation.aggregate:

    assert isinstance(obj, (Series, DataFrame, SeriesGroupBy, DataFrameGroupBy, BaseWindow, Resampler))

This is a bit ghastly, going to just leave the description as generic unless this specificity is desired. @jreback green-ish