Bazel client: make it compile with MSVC

Final modifications to the Bazel client code so
we can compile //src/main/cpp/...:all using MSVC.
Yay!

We still have some dependencies that don't compile
with MSVC, namely Ijar, build-runfiles,
process-wrapper, and process-tools.

Still, this change is a huge success, because now
we can add regression tests to prevent people from
introducing breaking changes to the client that
would break Windows/MSVC compilation.

It's important to point out that we can only build
this library for now, most functions in
file_windows.cc and blaze_util_windows.cc have an
empty body (they just call `pdie`).

See https://github.com/bazelbuild/bazel/issues/2107

--
MOS_MIGRATED_REVID=140348351
diff --git a/src/main/cpp/global_variables.h b/src/main/cpp/global_variables.h
index e11ea1a..063cdbb 100644
--- a/src/main/cpp/global_variables.h
+++ b/src/main/cpp/global_variables.h
@@ -22,6 +22,8 @@
 #include <string>
 #include <vector>
 
+#include "src/main/cpp/util/port.h"  // pid_t on Windows/MSVC
+
 namespace blaze {
 
 class OptionProcessor;
@@ -52,6 +54,9 @@
   // The path of the JVM executable that should be used to launch Blaze.
   std::string jvm_path;
 
+  // TODO(laszlocsomor) 2016-11-28: move pid_t usage out of here and whereever
+  // else it appears. Find some way to not have to declare a pid_t here, either
+  // by making PID handling platform-independent or some other idea.
   pid_t server_pid;
 
   // Contains the relative paths of all the files in the attached zip, and is