Move action post-processing to a continuation

Action post-processing consists of updating action inputs after
execution as well as writing an entry to the action cache. This
implicitly ensures that we do not even attempt to write shared
(duplicate) actions to the action cache.

Progress on #6394.

PiperOrigin-RevId: 234982739
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionState.java b/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionState.java
index 7175049..c02d2c9 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionState.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionState.java
@@ -66,17 +66,13 @@
     this.state = Preconditions.checkNotNull(state);
   }
 
-  public boolean isOwner(ActionLookupData actionLookupData) {
-    return this.actionLookupData.equals(actionLookupData);
-  }
-
   public ActionExecutionValue getResultOrDependOnFuture(
       SkyFunction.Environment env,
       ActionLookupData actionLookupData,
       Action action,
       ActionCompletedReceiver actionCompletedReceiver)
       throws ActionExecutionException, InterruptedException {
-    if (isOwner(actionLookupData)) {
+    if (this.actionLookupData.equals(actionLookupData)) {
       // This continuation is owned by the Skyframe node executed by the current thread, so we use
       // it to run the state machine.
       return runStateMachine(env);