Add TestAttemptContinuation

This adds an interface for representing async test attempt execution.
While I'd love to move this up to TestRunnerAction, unfortunately, the
Bazel and Blaze implementations are sufficiently different to make that
difficult at this time.

I have a follow-up change that switches test execution to the new code
for all cases (including non-async), which adds plenty of test coverage.

Progress on #6394.

PiperOrigin-RevId: 238686781
diff --git a/src/main/java/com/google/devtools/build/lib/exec/StandaloneTestStrategy.java b/src/main/java/com/google/devtools/build/lib/exec/StandaloneTestStrategy.java
index 63e5117..c2c080c 100644
--- a/src/main/java/com/google/devtools/build/lib/exec/StandaloneTestStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/exec/StandaloneTestStrategy.java
@@ -545,6 +545,11 @@
       this.execRoot = execRoot;
     }
 
+    @Override
+    public ActionExecutionContext getActionExecutionContext() {
+      return actionExecutionContext;
+    }
+
     public StandaloneTestResult execute() throws InterruptedException, IOException, ExecException {
       prepareFileSystem(testAction, tmpDir, coverageDir, workingDirectory);
       return executeTestAttempt(testAction, spawn, actionExecutionContext, execRoot);