Extend the SpawnRunner API

- add an id for logging; this allows us to correlate log entries for the same
  spawn from multiple spawn runner implementations in the future
- add a prefetch method to the SpawnExecutionPolicy; better than relying on
  the ActionInputPrefetcher being injected in the constructor
- add a name parameter to the report method; this is in preparation for a
  single unified SpawnStrategy implementation - it's basically the last bit of
  difference between SandboxStrategy and RemoteSpawnStrategy; they're otherwise
  equivalent (if not identical)

PiperOrigin-RevId: 162194684
diff --git a/src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnRunnerTest.java b/src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnRunnerTest.java
index 0390994..a6d0be8 100644
--- a/src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnRunnerTest.java
+++ b/src/test/java/com/google/devtools/build/lib/remote/RemoteSpawnRunnerTest.java
@@ -186,6 +186,16 @@
     }
 
     @Override
+    public int getId() {
+      return 0;
+    }
+
+    @Override
+    public void prefetchInputs(Iterable<ActionInput> inputs) throws IOException {
+      throw new UnsupportedOperationException();
+    }
+
+    @Override
     public void lockOutputFiles() throws InterruptedException {
       throw new UnsupportedOperationException();
     }
@@ -217,7 +227,7 @@
     }
 
     @Override
-    public void report(ProgressStatus state) {
+    public void report(ProgressStatus state, String name) {
       assertThat(state).isEqualTo(ProgressStatus.EXECUTING);
     }
   }