Whitelist Starlark rule class transitions in order to guard roll out.

We already whitelist attribute transitions so a decent amount of testing is done in StarlarkAttrTransitionProviderTest.

Actually checking of the whitelist hinges on having the special whitelist attribute (with proper name and value). So just adding checks that that attribute is properly around when we have rule class transitions hooks in the whitelist checking (see SkylarkRuleConfiguredTargetUtil#buildRule for context).

PiperOrigin-RevId: 238052200
diff --git a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
index 3905d0a..c19694a 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
@@ -676,6 +676,7 @@
     private boolean isAnalysisTest = false;
     private boolean hasAnalysisTestTransition = false;
     private boolean hasFunctionTransitionWhitelist = false;
+    private boolean hasStarlarkRuleTransition = false;
     private boolean ignorePackageLicenses = false;
     private ImplicitOutputsFunction implicitOutputsFunction = ImplicitOutputsFunction.NONE;
     private RuleTransitionFactory transitionFactory;
@@ -1074,6 +1075,14 @@
       return this;
     }
 
+    public void setHasStarlarkRuleTransition() {
+      hasStarlarkRuleTransition = true;
+    }
+
+    public boolean hasStarlarkRuleTransition() {
+      return hasStarlarkRuleTransition;
+    }
+
     public Builder factory(ConfiguredTargetFactory<?, ?, ?> factory) {
       this.configuredTargetFactory = factory;
       return this;