fix issue 11232 - rewritten std.windows.syserror.sysErrorString

Depends on ~~[druntime pull request #637](https://github.com/D-Programming-Language/druntime/pull/637)~~ so that Phobos doesn't have multiple declarations of `CP_UTF8`.

Fixed for Unicode-correctness; now works on non-English Windows systems.
Added unit test.
Throws an `Exception` if the given error code or language combination was invalid.

As it is a rewrite, it's probably easier to review by looking at the [new source](https://github.com/JakobOvrum/phobos/blob/syserrorstring/std/windows/syserror.d).