Expose versions of Package.Builder#addRule and RuleClass#createRule that don't perform internal sanity checks.

--
MOS_MIGRATED_REVID=126073693
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Package.java b/src/main/java/com/google/devtools/build/lib/packages/Package.java
index 44d9e30..04a8ef4 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Package.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Package.java
@@ -1205,9 +1205,13 @@
       }
     }
 
-    void addRule(Rule rule) throws NameConflictException {
+    /**
+     * Same as {@link #addRule}, except with no name conflict checks.
+     *
+     * <p>Don't call this function unless you know what you're doing.
+     */
+    void addRuleUnchecked(Rule rule) {
       Preconditions.checkArgument(rule.getPackage() == pkg);
-      checkForConflicts(rule);
       // Now, modify the package:
       for (OutputFile outputFile : rule.getOutputFiles()) {
         targets.put(outputFile.getName(), outputFile);
@@ -1225,6 +1229,11 @@
       }
     }
 
+    void addRule(Rule rule) throws NameConflictException {
+      checkForConflicts(rule);
+      addRuleUnchecked(rule);
+    }
+
     private Builder beforeBuild() {
       Preconditions.checkNotNull(pkg);
       Preconditions.checkNotNull(filename);