CLog update (alternative)

This is an alternative for PR #5044.

* Fix some mess in CLog
* Rework win32 part to work directly with win32 File API instead of some strange `_utf8` wrappers
* Move adb printing to the right place
* [win32] Add LogW() for wide string logging
* Add LogFunctions/LogFunctionsW(win32) and companion macros LogF/LogFW(win32) for quick logging with function name: instead of 
```` C++
CLog::Log(LOGDEBUG, "%s: Return code: %i", __FUNCTION__, ret);
````
use
```` C++
CLog::LogF(LOGDEBUG, "Return code: %i", ret);
````
 this will put exactly the same string to the log.
* Added parameter checking for MSVC
* Removed CStdString
Should we be validating this at all, or is that handled elsewhere (could well be).