CLN: Unify Window._apply_window and Rolling._apply functions
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`

`roll_window` function is split into two to enable implementing other weighted functions e.g. var, std (ref #26597)
