Fix compilation on Windows

Various missing code updates.
Disable MSVC #pragma warning for non-MSVC

This results in compilation error if warnings are treated as errors
by GCC.
Fix fileops test on Windows with pdcurses

* Use of *nix-only configuration field.
* pdcurses crashes if screen isn't uninitialized.
Disable test for "-completion for Windows
Ignore uname error in tests' Makefile on Windows
Add io/private to dirs list in Makefile.win
Provide wcwidth() and wcswidth() on Windows
Add -g linker flag in tests

Not sure why it works without it, but won't harm anyway.
Fix file appending on copying on Windows

For some reason it doesn't work in VM I'm using now, have to call
fseek(), although "a" mode should do that for us.
Fix file appending on moving on Windows

It works on non-Windows as rename() there moves files and we don't
get to that checks.
Add UTF8 <-> UTF16 conversion functions
Convert filenames to UTF-8 on Windows

It's internal representation.
Move handle_mount_points to Win utils

And rename to win_resolve_mount_points().
Re-implement realpath() on Windows

Use win_resolve_mount_points(), which is exactly what we need here,
previous implementation was quite bad (had wrong semantics).
Fix unexpected path resolution on Windows

Under path containing symbolic links.
Minor win_resolve_mount_points() style correction
Convert path from utf-8 on displaying title
Enable utf8 functions and tests on Windows
Convert wide/multibyte utf8 <-> utf16 on Windows
Use drive_exists() in win_get_file_attrs()

To reduce code duplication.