std::c_str: Add trait ToCU16Str

`ToCU16Str` has `to_c_u16_str` method which converts receiver into
null-terminated UTF-16 vector (like `ToCStr::to_c_str`).
It also has `with_c_u16_str` method like `ToCStr::with_c_str`.

This patch also removes `std::os::win32::{as_utf16_p, as_mut_utf16_p}`.

[breaking-change]
std::str: return StrBuf for from_utf16{,_lossy}

[breaking-change]