Fix circular dependencies between optional, array_view, and rtc_base.

This splits things out of rtc_base and makes dependencies explicit.

Bug: webrtc:6828
Change-Id: Id521896c3c43595349021c857bec216e429a0c8d
Reviewed-on: https://webrtc-review.googlesource.com/32780
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21264}
diff --git a/rtc_base/fileutils.h b/rtc_base/fileutils.h
index a254494..6f20a20 100644
--- a/rtc_base/fileutils.h
+++ b/rtc_base/fileutils.h
@@ -13,13 +13,15 @@
 
 #include <string>
 
-#if !defined(WEBRTC_WIN)
+#if defined(WEBRTC_WIN)
+#include <windows.h>
+#else
 #include <dirent.h>
 #include <stdio.h>
 #include <sys/stat.h>
 #include <sys/types.h>
 #include <unistd.h>
-#endif
+#endif  // WEBRTC_WIN
 
 #include "rtc_base/checks.h"
 #include "rtc_base/constructormagic.h"