Optimize how null configurations get created and add test infrastructure for Bazel's dep configuration creation logic.

This essentially implements the following TODOs:

https://github.com/bazelbuild/bazel/blob/bc6045dcc8fa33d4241d231138020ac4bdecc14f/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java#L599
https://github.com/bazelbuild/bazel/blob/bc6045dcc8fa33d4241d231138020ac4bdecc14f/src/test/java/com/google/devtools/build/lib/skyframe/ConfigurationsForTargetsTest.java#L42

--
MOS_MIGRATED_REVID=134607049
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java b/src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java
index 73642c5..25d833c 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/BuildViewTest.java
@@ -345,20 +345,15 @@
               Label.parseAbsolute("//package:inner"),
               Attribute.ConfigurationTransition.NONE,
               ImmutableSet.<AspectDescriptor>of());
-      fileDependency =
-          Dependency.withTransitionAndAspects(
-              Label.parseAbsolute("//package:file"),
-              Attribute.ConfigurationTransition.NULL,
-              ImmutableSet.<AspectDescriptor>of());
     } else {
       innerDependency =
           Dependency.withConfiguration(
               Label.parseAbsolute("//package:inner"),
               getTargetConfiguration());
-      fileDependency =
-          Dependency.withNullConfiguration(
-              Label.parseAbsolute("//package:file"));
     }
+    fileDependency =
+        Dependency.withNullConfiguration(
+            Label.parseAbsolute("//package:file"));
 
     assertThat(targets).containsExactly(innerDependency, fileDependency);
   }