Set of changes for better build and testing experience on Windows

This set of changes brings testing on Windows to the same quality as on Linux (in terms of script behavior) and does some clean up in build process. Namely:
- Suppress 4244 warining, which appears multiple times due to code in LLVM headers.
- Minor cleanup of the list of linked LLVM libraries (this list needs to be updated from time to time and it actually depends on LLVM version).
- run_tests.py was broken on Windows (not properly tested studet's fix), it's fixed now.
- Re-implemented tests and compiler paths handling on Windows - now all commands are issued with Windows-style backward slashes.
- All temporary files on Windows are now located in tmp* dirs (previousely only part of them were there, the rest polluted test directories)
- Generic testing was fixed (before it didn't work due to problems in test script), thougth the generic target is still not functioning on Windows, but for different reasons.
- run_tests.py behavior was fixed to match "look and feel" of Linux behavior:
  a) not issue unnecessary messages for each thread (i.e. info about used compiler expected to be prited only once)
  b) do correct test counting during testing (it simply didn't work due to different threading model on Windows, each thread did it's own counting)
  c) status update fixed to "live" in single line even in short terminal (helps on both Linux and Windows with standard 80 char term).

The changes were tested on Linux and Windows with different architectures and targets.