Refactor analysis failure reporting, report loading failures

Split the AnalysisFailureEvent into a legacy and a new variant; always post an
AnalysisFailureEvent, even if the legacy variant is not posted - this gives us
some coverage for loading failures.

PiperOrigin-RevId: 197862257
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 f22cf53..748451b 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
@@ -847,11 +847,11 @@
       return loadingRootCauses;
     }
 
-    public Label getAnalysisRootCause() {
+    @Nullable public Label getAnalysisRootCause() {
       return analysisRootCause;
     }
 
-    public BuildEventId getConfiguration() {
+    @Nullable public BuildEventId getConfiguration() {
       return configuration;
     }
   }