Fix an OOM on non-OpenJDKs

I'm not sure how this actually works at all on an OpenJDK vm, but it seems to. However, the current logic simply calls the existing type's enclosing type but never actually refers to it again.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=68842210
Force Factory implementations for types with supertypes to perform members injection even if the injected type doesn't have injected members of its own in case the supertype changes.  Also, have MembersInjector implementations delegate to MembersInjectors for supertypes.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=68923460
Fix for mixed provision/members-injection where the wrong constructor is generated for component implementations for the factory.  The Factory<T> requires a MembersInjector<T> which is not added as a dependency request when generating the component, so never shows up in the component to be passed to the Factory's constructor. The result is a call to a constructor with one fewer parameters than necessary.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=69048212
Fix primitive type injection/provision in Dagger 2.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=69124075
Merge pull request #27 from google/moe_sync

Sync from Google's internal repository, mostly fixes.
Fix annotation equivalence for Keys in Dagger 2.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=69332953
Merge pull request #28 from google/moe_writing_branch_from_8fd8d27cb2d58b7f106a5a7990d8431a49cd690d

Fix annotation equivalence for Keys in Dagger 2.
enable component processing.
Fix bad ordering of provider instances.