Introduce RAII ScopedFile class to auto-close FDs

As we start dealing with file descriptors, let's avoid
leaking them by accident.

Change-Id: Ia85c3a51597bde806ee7f9670b8c13541c962e25
diff --git a/build/BUILD.gn b/build/BUILD.gn
index 1aa1772..b2658e0 100644
--- a/build/BUILD.gn
+++ b/build/BUILD.gn
@@ -25,14 +25,15 @@
   if (is_clang) {
     cflags += [
       "-Weverything",
-      "-Wno-c++98-compat",
       "-Wno-c++98-compat-pedantic",
+      "-Wno-c++98-compat",
       "-Wno-gnu-include-next",
       "-Wno-gnu-statement-expression",
+      "-Wno-gnu-zero-variadic-macro-arguments",
       "-Wno-padded",
       "-Wno-reserved-id-macro",
-      "-Wno-unused-parameter",
       "-Wno-unknown-warning-option",
+      "-Wno-unused-parameter",
     ]
   }
 }