Do not expand flags in invocation policy twice.

`InvocationPolicyEnforcer` [expands all flags before setting](https://github.com/bazelbuild/bazel/blob/60fc2d18fadec5f99849b78bce761da62dd78c32/src/main/java/com/google/devtools/common/options/InvocationPolicyEnforcer.java#L124-L125) them to later call into the `OptionsParser` to set their values, which [repeats the process for the flags with expansions/implicit requirements](https://github.com/bazelbuild/bazel/blob/60fc2d18fadec5f99849b78bce761da62dd78c32/src/main/java/com/google/devtools/common/options/OptionsParserImpl.java#L549-L556). Refactor `OptionsParser` to expose a method for setting flag value without the expansion so that `InvocationPolicyEnforcer` can skip the second, unnecessary expansion.

PiperOrigin-RevId: 378775962
diff --git a/src/main/java/com/google/devtools/common/options/InvocationPolicyEnforcer.java b/src/main/java/com/google/devtools/common/options/InvocationPolicyEnforcer.java
index 5ae079b..42203a5 100644
--- a/src/main/java/com/google/devtools/common/options/InvocationPolicyEnforcer.java
+++ b/src/main/java/com/google/devtools/common/options/InvocationPolicyEnforcer.java
@@ -577,7 +577,8 @@
               valueDescription.getSourceString());
         }
 
-        parser.addOptionValueAtSpecificPriority(flagPolicy.origin, optionDefinition, flagValue);
+        parser.setOptionValueAtSpecificPriorityWithoutExpansion(
+            flagPolicy.origin, optionDefinition, flagValue);
       }
     }
   }
@@ -746,7 +747,8 @@
               policyType,
               policyValues);
           parser.clearValue(optionDefinition);
-          parser.addOptionValueAtSpecificPriority(origin, optionDefinition, newValue);
+          parser.setOptionValueAtSpecificPriorityWithoutExpansion(
+              origin, optionDefinition, newValue);
         } else {
           // The operation disallows the default value, but doesn't supply a new value.
           throw new OptionsParsingException(
@@ -799,7 +801,7 @@
                     + "specified by invocation policy. %sed values are: %s",
                 valueDescription.getValue(), option, newValue, policyType, policyValues);
             parser.clearValue(option);
-            parser.addOptionValueAtSpecificPriority(origin, option, newValue);
+            parser.setOptionValueAtSpecificPriorityWithoutExpansion(origin, option, newValue);
           } else if (useDefault) {
             applyUseDefaultOperation(parser, policyType + "Values", option, loglevel);
           } else {