std::c_str: Add trait ToCU16Str

It replaces `std::os::win32::{as_utf16_p, as_mut_utf16_p}`.

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

[breaking-change]
std::os: remove `~[u8]`/`~str`

TODO

[breaking-change]