Add support for Microsoft __cpuidex() function in cpuid-x86.h

Will be used by the Visual Studio support since the assembly
syntax is different there (and it doesn't work on all platforms).
lstopo: don't use swprintf() when building with Visual Studio

Exactly like when building with mingw.
Add experimental Visual Studio support under contrib/windows

You have to open hwloc.sln to build things.

Only ReleaseDll (and almost untested ReleaseStatic) are supported for now
because the Debug builds didn't work.
But there's still some support for debug builds in individual .vcxproj files.

contrib/windows/README gives some details about all this.

hwloc/autogen.h, private/autogen.h and static-components.h are hardwired
under contrib/windows/ and moved to their expected location before the build.

The library and each program has its own .vcxproj.
* lstopo-win is built with the windows subsystem instead of console,
  and with /entry:mainCRTStartup so that the linker uses main() instead of WinMain().
  (similar to gcc -mwindows)
* hwloc-patch is not built because it does nothing on windows currently.
  contrib/windows/README contains some code that could help.
* hwloc-assembler-remote is not built because it's a script that uses hardwired
  installation path, and because it needs ssh.

Internal changes:
* swprintf() cannot be used in lstopo-text.c (just like under mingw)
  so we #ifndef _MSC_VER there.
* we use the new _cpuidex() support in cpuid-x86.h

Thanks to Eloi Gaudry for his help and for providing the first draft.