Minor fixes to Windows build to improve header include order resiliency (#126)

* Rearrange includes in icd_windows.c to ensure DXGI.h has INITGUID defined when it's included

* Fix extern "C" usage in Windows build
diff --git a/loader/windows/icd_windows.c b/loader/windows/icd_windows.c
index 25f1b9b..19a0e7a 100644
--- a/loader/windows/icd_windows.c
+++ b/loader/windows/icd_windows.c
@@ -16,6 +16,8 @@
  * OpenCL is a trademark of Apple Inc. used under license by Khronos.
  */
 
+#include <initguid.h>
+
 #include "icd.h"
 #include "icd_windows.h"
 #include "icd_windows_hkr.h"
@@ -25,7 +27,6 @@
 #include <windows.h>
 #include <winreg.h>
 
-#include <initguid.h>
 #include <dxgi.h>
 typedef HRESULT (WINAPI *PFN_CREATE_DXGI_FACTORY)(REFIID, void **);
 
diff --git a/loader/windows/icd_windows.h b/loader/windows/icd_windows.h
index 48bbf13..2a283d3 100644
--- a/loader/windows/icd_windows.h
+++ b/loader/windows/icd_windows.h
@@ -19,9 +19,16 @@
 #include <stdbool.h>
 #include <windows.h>
 
+#ifdef __cplusplus
+extern "C" {
+#endif
 extern const LUID ZeroLuid;
 
 BOOL adapterAdd(const char* szName, LUID luid);
 
 // Do not free the memory returned by this function.
 const char* getOpenCLRegKeyName(void);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/loader/windows/icd_windows_apppackage.cpp b/loader/windows/icd_windows_apppackage.cpp
index 96a0bb2..b305c5d 100644
--- a/loader/windows/icd_windows_apppackage.cpp
+++ b/loader/windows/icd_windows_apppackage.cpp
@@ -16,11 +16,8 @@
  * OpenCL is a trademark of Apple Inc. used under license by Khronos.
  */
 
-extern "C"
-{
 #include "icd.h"
 #include "icd_windows.h"
-}
 
 #ifdef OPENCL_ICD_LOADER_DISABLE_OPENCLON12