WIP/REF: BlockManager.setitem_blockwise
Posting largely for discussion with @phofl.

Motivations:

1) Try to end up with fewer code paths for setitem so that we can ensure consistent inplace/view/copy behavior (xref #38896)
2) Simplify (ATM this does not simplify things)
3) Perf: iterating over blocks instead of columns may save some copies (though doing the Index.intersection calls may go the other way) (havent done any profiling yet)

Non-trivial overlap with #39044.
Some of this would be simplified by #39163.
No logical overlap with #39266, but will require rebase.
