BUG: broadcasting listlike values in Series.__setitem__ GH#44265
- [x] closes #44265
- [x] tests added / passed
- [x] Ensure all linting tests pass, see [here](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit) for how to run them
- [x] whatsnew entry

This should in turn allow us to avoid some special-casing that we do in internals/putmask_smart.

Sits on top of #44261
@jreback following this we can get rid of both putmask_preserve and putmask_without_repeat can you rebase rebased + greenish updated + greenish lgtm @phofl if you can have a look thx @jbrockmendel 