Simplifies MapBinder by moving Key generation to RealMapBinder's constructor.

Tested:
All existing tests pass.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=79160583
diff --git a/extensions/multibindings/src/com/google/inject/multibindings/MapBinder.java b/extensions/multibindings/src/com/google/inject/multibindings/MapBinder.java
index 4e5ec78..f8fd4a3 100644
--- a/extensions/multibindings/src/com/google/inject/multibindings/MapBinder.java
+++ b/extensions/multibindings/src/com/google/inject/multibindings/MapBinder.java
@@ -143,11 +143,7 @@
   public static <K, V> MapBinder<K, V> newMapBinder(Binder binder,
       TypeLiteral<K> keyType, TypeLiteral<V> valueType) {
     binder = binder.skipSources(MapBinder.class, RealMapBinder.class);
-    return newMapBinder(binder, keyType, valueType,
-        Key.get(mapOf(keyType, valueType)),
-        Key.get(mapOfProviderOf(keyType, valueType)),
-        Key.get(mapOf(keyType, setOf(valueType))),
-        Key.get(mapOfSetOfProviderOf(keyType, valueType)),
+    return newMapBinder(binder, keyType, valueType, Key.get(mapOf(keyType, valueType)),
         Multibinder.newSetBinder(binder, entryOfProviderOf(keyType, valueType)));
   }
 
@@ -169,9 +165,6 @@
     binder = binder.skipSources(MapBinder.class, RealMapBinder.class);
     return newMapBinder(binder, keyType, valueType,
         Key.get(mapOf(keyType, valueType), annotation),
-        Key.get(mapOfProviderOf(keyType, valueType), annotation),
-        Key.get(mapOf(keyType, setOf(valueType)), annotation),
-        Key.get(mapOfSetOfProviderOf(keyType, valueType), annotation),
         Multibinder.newSetBinder(binder, entryOfProviderOf(keyType, valueType), annotation));
   }
 
@@ -193,9 +186,6 @@
     binder = binder.skipSources(MapBinder.class, RealMapBinder.class);
     return newMapBinder(binder, keyType, valueType,
         Key.get(mapOf(keyType, valueType), annotationType),
-        Key.get(mapOfProviderOf(keyType, valueType), annotationType),
-        Key.get(mapOf(keyType, setOf(valueType)), annotationType),
-        Key.get(mapOfSetOfProviderOf(keyType, valueType), annotationType),
         Multibinder.newSetBinder(binder, entryOfProviderOf(keyType, valueType), annotationType));
   }
 
@@ -247,13 +237,10 @@
   }
 
   private static <K, V> MapBinder<K, V> newMapBinder(Binder binder,
-      TypeLiteral<K> keyType, TypeLiteral<V> valueType,
-      Key<Map<K, V>> mapKey, Key<Map<K, Provider<V>>> providerMapKey,
-      Key<Map<K, Set<V>>> multimapKey, Key<Map<K, Set<Provider<V>>>> providerMultimapKey,
+      TypeLiteral<K> keyType, TypeLiteral<V> valueType, Key<Map<K, V>> mapKey,
       Multibinder<Entry<K, Provider<V>>> entrySetBinder) {
-    RealMapBinder<K, V> mapBinder = new RealMapBinder<K, V>(
-        binder, keyType, valueType, mapKey, providerMapKey, multimapKey,
-        providerMultimapKey, entrySetBinder);
+    RealMapBinder<K, V> mapBinder =
+        new RealMapBinder<K, V>(binder, keyType, valueType, mapKey, entrySetBinder);
     binder.install(mapBinder);
     return mapBinder;
   }
@@ -330,16 +317,14 @@
     private ImmutableList<Map.Entry<K, Binding<V>>> mapBindings;
 
     private RealMapBinder(Binder binder, TypeLiteral<K> keyType, TypeLiteral<V> valueType,
-        Key<Map<K, V>> mapKey, Key<Map<K, Provider<V>>> providerMapKey,
-        Key<Map<K, Set<V>>> multimapKey, Key<Map<K, Set<Provider<V>>>> providerMultimapKey,
-        Multibinder<Map.Entry<K, Provider<V>>> entrySetBinder) {
+        Key<Map<K, V>> mapKey, Multibinder<Map.Entry<K, Provider<V>>> entrySetBinder) {
       this.keyType = keyType;
       this.valueType = valueType;
       this.mapKey = mapKey;
-      this.providerMapKey = providerMapKey;
-      this.javaxProviderMapKey = providerMapKey.ofType(mapOfJavaxProviderOf(keyType, valueType));
-      this.multimapKey = multimapKey;
-      this.providerMultimapKey = providerMultimapKey;
+      this.providerMapKey = mapKey.ofType(mapOfProviderOf(keyType, valueType));
+      this.javaxProviderMapKey = mapKey.ofType(mapOfJavaxProviderOf(keyType, valueType));
+      this.multimapKey = mapKey.ofType(mapOf(keyType, setOf(valueType)));
+      this.providerMultimapKey = mapKey.ofType(mapOfSetOfProviderOf(keyType, valueType));
       this.entrySetBinder = (RealMultibinder<Entry<K, Provider<V>>>) entrySetBinder;
       this.binder = binder;
       this.duplicateKeyErrorMessages = Maps.newHashMap();