Extract a common AbstractSpawnStrategy parent class

This removes a bunch of code duplication that I previously introduced.

PiperOrigin-RevId: 162909430
diff --git a/src/test/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategyTest.java b/src/test/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategyTest.java
index 0aa7695..7983c66 100644
--- a/src/test/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategyTest.java
+++ b/src/test/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategyTest.java
@@ -40,7 +40,9 @@
 import com.google.devtools.build.lib.exec.BlazeExecutor;
 import com.google.devtools.build.lib.exec.ExecutionOptions;
 import com.google.devtools.build.lib.exec.SingleBuildFileCache;
+import com.google.devtools.build.lib.exec.local.LocalEnvProvider;
 import com.google.devtools.build.lib.exec.local.LocalExecutionOptions;
+import com.google.devtools.build.lib.exec.local.LocalSpawnRunner;
 import com.google.devtools.build.lib.integration.util.IntegrationMock;
 import com.google.devtools.build.lib.testutil.TestConstants;
 import com.google.devtools.build.lib.testutil.TestUtils;
@@ -128,8 +130,13 @@
             ImmutableMap.<String, SpawnActionContext>of(
                 "",
                 new StandaloneSpawnStrategy(
-                    execRoot, localExecutionOptions, /*verboseFailures=*/false, "mock-product-name",
-                    resourceManager)),
+                    /*verboseFailures=*/false,
+                    new LocalSpawnRunner(
+                        execRoot,
+                        localExecutionOptions,
+                        resourceManager,
+                        "mock-product-name",
+                        LocalEnvProvider.UNMODIFIED))),
             ImmutableList.<ActionContextProvider>of());
 
     executor.getExecRoot().createDirectory();