Add runfiles to metadata caches and make them isFile aware

--
MOS_MIGRATED_REVID=94318260
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupplierImpl.java b/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupplierImpl.java
index cfb84c2..ccdc890 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupplierImpl.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupplierImpl.java
@@ -48,6 +48,17 @@
   }
 
   @Override
+  public Iterable<Artifact> getArtifacts() {
+    ImmutableSet.Builder<Artifact> builder = ImmutableSet.builder();
+    for (Entry<PathFragment, Runfiles> entry : inputRunfiles.entrySet()) {
+      // TODO(bazel-team): We can likely do without middlemen here, but we should filter that at
+      // the Runfiles level.
+      builder.addAll(entry.getValue().getAllArtifacts());
+    }
+    return builder.build();
+  }
+
+  @Override
   public ImmutableSet<PathFragment> getRunfilesDirs() {
     return inputRunfiles.keySet();
   }