BUG/CLN: Decouple Series/DataFrame.transform
- [x] closes #35811
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

First step toward #35725. Currently `transform` just calls `aggregate`, and so if we are to forbid `aggregate` from transforming, these need to be decoupled. Other than the bugfix (#35811), the only other behavioral change is in the error messages.

Assuming the bugfix #35811 is the correct behavior, docs/whatsnew also needs to be updated.

I wasn't sure if tests should be marked with #35725 or perhaps this PR #. Any guidance here?
> I wasn't sure if tests should be marked with #35725 or perhaps this PR #. Any guidance here?
either is fine @jreback Thanks for the review. Code has been reorganized and ready for another. For the comment about not adding things to the core files - I think the idea behind this that we should be distributing the implementation of methods in e.g. NDFrame into various submodules like aggregate instead of having one monolithic generic.py. Is that correct? @jreback changes made and green. In fixing the one test I found cumcount doesn't exist for DataFrames/Series (which, after thinking a bit, makes sense). This prompted me to add in tests for (almost) all the transformation kernels. thanks @rhshadrach 