Fix preallocation amount in String::from_utf16

`v.len()` counts code units, not UTF-16 bytes. The lower bound is one UTF-8 byte per code unit, not per two code units.
auto merge of #17752 : SimonSapin/rust/patch-6, r=thestinger

`v.len()` counts code units, not UTF-16 bytes. The lower bound is one UTF-8 byte per code unit, not per two code units.

I believe this is correct, but it’s late. Someone please double check.