Fix arx-install-data with mksh

Consider the following code:

set -- foobar
for item in ; do echo "$item" ; done

This prints foobar in mksh but nothing in bash, dash, zsh and ksh.
My reading of the POSIX shell spec tells me that mksh is wrong, but
it's not hard to change the code so it also works on mksh by preventing
those weird for loops.
Couple of fixes to make the mingw compilation work. Not sure why I needed to include Win32Utilities.h in OS.cpp though.
Moved GetWindowsVersionName(..) and Is64BitWindows() from Win32Utilities.cpp to OS.cpp as they were only used in there.
A couple more fixes to CMakeLists.txt to make this work.
Fix non-Windows build and cleanup code
Remove product type from Windows version strings

It's overkill for our purposes and removing it allows us to not define
product constants that may clash with a sufficiently new Windows SDK
or MinGW headers. (yeah, we could rename them, but...)