Note that if the user has an array containing a UTF-16 string in the native byte order, with no BOM, and it is important to convert it to a string without making a copy, they can always force that behavior by doing `utf16(reinterpret(Uint16, array))`.   So, I don't think the `copy` here could pose a big problem in practice.