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)