Avoid checking visibility and other constraints for the lipo dependency.

The lipo dependency is artificial; it's an artifact of how LIPO is implemented
in Bazel. Running these checks doesn't make sense; they unnecessarily
disallow perfectly valid scenarios.

--
MOS_MIGRATED_REVID=102550286
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
index 16982f0..0cfb114 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
@@ -1570,7 +1570,9 @@
       validateDirectPrerequisiteType(prerequisite, attribute);
       validateDirectPrerequisiteFileTypes(prerequisite, attribute);
       validateMandatoryProviders(prerequisite, attribute);
-      prerequisiteValidator.validate(this, prerequisite, attribute);
+      if (attribute.performConstraintsCheck()) {
+        prerequisiteValidator.validate(this, prerequisite, attribute);
+      }
     }
   }