Provide AspectDescriptor to ConfiguredAspect.

Also clean up the setting of aspect name in ConfiguredAspect and
AspectDefintion - it is now obtained from the AspectClass.

--
MOS_MIGRATED_REVID=140357052
diff --git a/src/main/java/com/google/devtools/build/lib/packages/AspectDefinition.java b/src/main/java/com/google/devtools/build/lib/packages/AspectDefinition.java
index 02405df..f3186d7 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/AspectDefinition.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/AspectDefinition.java
@@ -55,7 +55,7 @@
 @Immutable
 public final class AspectDefinition {
 
-  private final String name;
+  private final AspectClass aspectClass;
   private final ImmutableSet<Class<?>> requiredProviders;
   private final ImmutableSet<String> requiredProviderNames;
   private final ImmutableMap<String, Attribute> attributes;
@@ -67,12 +67,12 @@
   }
 
   private AspectDefinition(
-      String name,
+      AspectClass aspectClass,
       ImmutableSet<Class<?>> requiredProviders,
       ImmutableMap<String, Attribute> attributes,
       PropagationFunction attributeAspects,
       @Nullable ConfigurationFragmentPolicy configurationFragmentPolicy) {
-    this.name = name;
+    this.aspectClass = aspectClass;
     this.requiredProviders = requiredProviders;
     this.requiredProviderNames = toStringSet(requiredProviders);
     this.attributes = attributes;
@@ -81,7 +81,11 @@
   }
 
   public String getName() {
-    return name;
+    return aspectClass.getName();
+  }
+
+  public AspectClass getAspectClass() {
+    return aspectClass;
   }
 
   /**
@@ -222,7 +226,7 @@
    * Builder class for {@link AspectDefinition}.
    */
   public static final class Builder {
-    private final String name;
+    private final AspectClass aspectClass;
     private final Map<String, Attribute> attributes = new LinkedHashMap<>();
     private final Set<Class<?>> requiredProviders = new LinkedHashSet<>();
     private final Multimap<String, AspectClass> attributeAspects = LinkedHashMultimap.create();
@@ -230,8 +234,8 @@
     private final ConfigurationFragmentPolicy.Builder configurationFragmentPolicy =
         new ConfigurationFragmentPolicy.Builder();
 
-    public Builder(String name) {
-      this.name = name;
+    public Builder(AspectClass aspectClass) {
+      this.aspectClass = aspectClass;
     }
 
     /**
@@ -408,7 +412,7 @@
      * <p>The builder object is reusable afterwards.
      */
     public AspectDefinition build() {
-      return new AspectDefinition(name, ImmutableSet.copyOf(requiredProviders),
+      return new AspectDefinition(aspectClass, ImmutableSet.copyOf(requiredProviders),
           ImmutableMap.copyOf(attributes),
           allAttributesAspects != null
               ? new AllAttributesPropagationFunction(allAttributesAspects)