REF: implement mask_setitem_value
- [ ] closes #xxxx
- [ ] tests added / passed
- [ ] 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
- [ ] whatsnew entry

cc @phofl I think this is what is needed to get #40380 working (https://github.com/pandas-dev/pandas/pull/40380#discussion_r680289744), could use your input when you have a chance.

This only does the masking for the non-tuple case.  Need to figure out if we can construct test cases that require the masking with tuples.
This pull request is stale because it has been open for thirty days with no activity. Please update or respond to this comment if you're still interested in working on this. Closing to clear the queue; has merged into #40380.  @phofl id still appreciate any comments when you get a chance.