CLog update

* 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
* Add LogW() for wide string logging (mostly for win32)
* Add LogFunctions/LogFunctionsW and companion macros LogF/LogFW 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

Virtual classes add extra overhead to code size and execution time of each call of any virtual function.
Virtual function are really useful when object types may vary at run time. But in this case object type is fixed and it's much better to use normal function, without complex resolving object type at run time.
I'm not sure that `assert.h` header will add a lot of overhead as it often included anyway, but I can just remove asserts from this class.