Use two configurations for AspectKeys.

In order for Aspects to support dynamic configuration, they need to have two
configurations: one to instantiate the Aspect with, containing all the fragment
dependencies of the Aspect itself, and one to create the ConfiguredTargetValue.key
with, containing only the dependencies of the Rule. This expands AspectKey to
have a second configuration, although it currently does not populate that key with
anything different.

--
MOS_MIGRATED_REVID=115997454
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
index e48a1b1..b67ba2e 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
@@ -464,6 +464,9 @@
           aspectKeys.add(
               AspectValue.createSkylarkAspectKey(
                   targetSpec.getLabel(),
+                  // For invoking top-level aspects, use the top-level configuration for both the
+                  // aspect and the base target while the top-level configuration is untrimmed.
+                  targetSpec.getConfiguration(),
                   targetSpec.getConfiguration(),
                   bzlFile,
                   skylarkFunctionName));
@@ -477,6 +480,9 @@
             aspectKeys.add(
                 AspectValue.createAspectKey(
                     targetSpec.getLabel(),
+                    // For invoking top-level aspects, use the top-level configuration for both the
+                    // aspect and the base target while the top-level configuration is untrimmed.
+                    targetSpec.getConfiguration(),
                     targetSpec.getConfiguration(),
                     new NativeAspectClass<ConfiguredNativeAspectFactory>(aspectFactoryClass)));
           }