Fix some win32 API usage

aquileia noticed that with MSVC set to 'unicode', wesnoth didn't compile.
The reason is that much of the win32 API is provided by macros that switch
foo(LPCTSTR) between fooA(const char*) and fooW(const wchar_t*).
We were using foo with const char*.
Silence a macro redefinition warning
Merge branch 'w32_unicode_compilation'