BUG/CLN: Refactor sanitize_column broadcasting

And only try to broadcast if columns aren't unique or are MI.

(also in the process fix small bug from #5321)
Merge pull request #5341 from jtratner/tweak-sanitize-column

BUG/CLN: Cleanup sanitize column and abstract broadcasting