Fixed unit tests to compile under MSVC.

1. Including config.h in test.
2. Including windows.h before zippy-test.h.
3. Removed definition of WIN32_LEAN_AND_MEAN. This caused problems in
   build environments that define WIN32_LEAN_AND_MEAN as our
   definition didn't check for prior existence. This constant is old
   and no longer needed anyhow.
4. Disable MSVC warning 4722 since ~LogMessageCrash() never returns.

A=cmumford
R=jeff
diff --git a/snappy-test.cc b/snappy-test.cc
index 4619410..7f1d0a8 100644
--- a/snappy-test.cc
+++ b/snappy-test.cc
@@ -28,13 +28,16 @@
 //
 // Various stubs for the unit tests for the open-source version of Snappy.
 
-#include "snappy-test.h"
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
 
 #ifdef HAVE_WINDOWS_H
-#define WIN32_LEAN_AND_MEAN
 #include <windows.h>
 #endif
 
+#include "snappy-test.h"
+
 #include <algorithm>
 
 DEFINE_bool(run_microbenchmarks, true,
diff --git a/snappy-test.h b/snappy-test.h
index 732c51d..dbc55b9 100644
--- a/snappy-test.h
+++ b/snappy-test.h
@@ -52,7 +52,6 @@
 #endif
 
 #ifdef HAVE_WINDOWS_H
-#define WIN32_LEAN_AND_MEAN
 #include <windows.h>
 #endif
 
@@ -548,6 +547,13 @@
     PREDICT_TRUE(condition) ? (void)0 : \
     snappy::LogMessageVoidify() & snappy::LogMessageCrash()
 
+#ifdef _MSC_VER
+// ~LogMessageCrash calls abort() and therefore never exits. This is by design
+// so temporarily disable warning C4722.
+#pragma warning(push)
+#pragma warning(disable:4722)
+#endif
+
 class LogMessageCrash : public LogMessage {
  public:
   LogMessageCrash() { }
@@ -557,6 +563,10 @@
   }
 };
 
+#ifdef _MSC_VER
+#pragma warning(pop)
+#endif
+
 // This class is used to explicitly ignore values in the conditional
 // logging macros.  This avoids compiler warnings like "value computed
 // is not used" and "statement has no effect".