Use icu for Unicode conversion and fix lpnSize
Use icu for Unicode conversion and fix lpnSize

A careful reading of the GetUserName documentation and Windows Data
Types says that lpnSize is "the number of TCHARs copied to the
buffer...including the terminating null character," and a TCHAR in this
environment is a CHAR because we assume UNICODE is always defined for
CoreCLR. A CHAR is a byte. So lpSize is number of bytes, not number of
UTF-16 characters as we previously believed.

kmosher/PowerShell,daxian-dbw/PowerShell,daxian-dbw/PowerShell,TravisEz13/PowerShell,kmosher/PowerShell,kmosher/PowerShell,bmanikm/PowerShell,bmanikm/PowerShell,bmanikm/PowerShell,PaulHigin/PowerShell,jsoref/PowerShell,bmanikm/PowerShell,JamesWTruher/PowerShell-1,JamesWTruher/PowerShell-1,KarolKaczmarek/PowerShell,KarolKaczmarek/PowerShell,jsoref/PowerShell,daxian-dbw/PowerShell,jsoref/PowerShell,TravisEz13/PowerShell,KarolKaczmarek/PowerShell,KarolKaczmarek/PowerShell,kmosher/PowerShell,bingbing8/PowerShell,bingbing8/PowerShell,JamesWTruher/PowerShell-1,daxian-dbw/PowerShell,jsoref/PowerShell,TravisEz13/PowerShell,PaulHigin/PowerShell,JamesWTruher/PowerShell-1,PaulHigin/PowerShell,TravisEz13/PowerShell,KarolKaczmarek/PowerShell,PaulHigin/PowerShell,bmanikm/PowerShell,jsoref/PowerShell,kmosher/PowerShell,bingbing8/PowerShell,bingbing8/PowerShell,bingbing8/PowerShell