Cleanup and refactor RuleErrorConsumer.

This removes the need for AbstractRuleErrorConsumer, and moves the logic of the post() method of RuleContext into RuleContext proper, as it circumvents normal error handling flows.

RELNOTES: None.
PiperOrigin-RevId: 215627666
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 4f80a32..f1902f2 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
@@ -1664,12 +1664,13 @@
       return mapBuilder.build();
     }
 
+    /**
+     * Post a raw event to the analysis environment's event handler. This circumvents normal
+     * error and warning reporting functionality to post events, and should only be used
+     * in rare cases where a custom event needs to be handled.
+     */
     public void post(Postable event) {
-      reporter.post(event);
-    }
-
-    public void reportError(Location location, String message) {
-      reporter.reportError(location, message);
+      env.getEventHandler().post(event);
     }
 
     @Override
@@ -1988,21 +1989,15 @@
   }
 
   /** Helper class for reporting errors and warnings. */
-  public static final class ErrorReporter extends EventHandlingErrorReporter
+  private static final class ErrorReporter extends EventHandlingErrorReporter
       implements RuleErrorConsumer {
-    private final AnalysisEnvironment env;
     private final Rule rule;
 
     ErrorReporter(AnalysisEnvironment env, Rule rule, String ruleClassNameForLogging) {
       super(ruleClassNameForLogging, env);
-      this.env = env;
       this.rule = rule;
     }
 
-    public void post(Postable event) {
-      env.getEventHandler().post(event);
-    }
-
     @Override
     protected String getMacroMessageAppendix(String attrName) {
       return rule.wasCreatedByMacro()