Respect --noexperimental_check_output_files in FileSystemValueChecker. FileStateValues for output files can make their way into the Skyframe graph if a source file is symlink to an output file.

Also fix a bug where ExternalFilesHelper#isExternalFileSeen would always return true after returning true once in the past. This meant if an external file ever made its way into the Skyframe graph, we would always do a full graph scan at the beginning of each build (iow, we would always waste some CPU time doing nothing interesting).

--
MOS_MIGRATED_REVID=118190190
diff --git a/src/main/java/com/google/devtools/build/lib/pkgcache/PackageCacheOptions.java b/src/main/java/com/google/devtools/build/lib/pkgcache/PackageCacheOptions.java
index ff4dff4..04039f1 100644
--- a/src/main/java/com/google/devtools/build/lib/pkgcache/PackageCacheOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/pkgcache/PackageCacheOptions.java
@@ -157,6 +157,13 @@
       help = "Allows the command to fetch external dependencies")
   public boolean fetch;
 
+  @Option(name = "experimental_check_output_files",
+        defaultValue = "true",
+        category = "undocumented",
+        help = "Check for modifications made to the output files of a build. Consider setting "
+            + "this flag to false to see the effect on incremental build times.")
+  public boolean checkOutputFiles;
+
   /**
    * A converter from strings containing comma-separated names of packages to lists of strings.
    */