Mostly keep the existing functions on scalars, but add versions which
also operate based on the vector element size.
I still think having scalar and scalarOrElt versions of the various LegalizeRuleSet functions would be useful. I think there are legitimate uses for clamping the vector and scalar element sizes separately, and wanting both to match would also be common. Also if I just change the behavior of all of these now, I'm going to have to update all of the targets with new, untested legalization behavior for all of the vector types. I'll try to produce the full set of these and see what it looks like.