Validate the outputs of transitions on build settings.

This means ensuring that all (non native) outputs of Starlark-defined transitions exist, are build settings, and are set to the correct type of value.

Wins along the way:
- properly propagate TransitionException through ConfiguredTargetFunction
- consolidate instances of COMMAND_LINE_OPTION_PREFIX

PiperOrigin-RevId: 239457521
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java
index d6c6995..5ee9ab4 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java
@@ -395,6 +395,11 @@
         throw new ConfiguredTargetFunctionException(
             new ConfiguredValueCreationException(
                 cause.getMessage(), target.getLabel(), configuration));
+      } else if (e.getCause() instanceof TransitionException) {
+        TransitionException cause = (TransitionException) e.getCause();
+        env.getListener().handle(Event.error(cause.getMessage()));
+        throw new ConfiguredTargetFunctionException(
+            new ConfiguredValueCreationException(e.getMessage(), target.getLabel(), configuration));
       } else {
         // Unknown exception type.
         throw new ConfiguredTargetFunctionException(