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.
Fix import order in one fell swoop.  I figured out what was wrong with my import order settings, so I figured I would just reorganize once to avoid CLs with tons of churn later.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=69497829
A TAB?!?!?!??!???!??!??!??!???!??!?!??!??!???!???!?!?!!
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=69501422
Add a FrameworkKey class to key the various framework types that pertain to a single key.  At the moment, this is only Provider.class and MembersInjector.class.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=69503447
Merge pull request #29 from google/moe_sync

Moe sync
A few extra tests for ClassName
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=69652903
Fix nested class injection/generation.

Currently, a MembersInjector<foo.Bar.Bash> would be written to the file foo/Bar/Bash$$MembersInjector.  This causes the file foo.Bar$Bash$$MembersInjector to be written in its place (and likewise for foo.Bar$Blah$$Factory, and foo.Dagger_Bar$MyComponent)
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=69654793
Fix lint error
Merge pull request #30 from google/moe_writing_branch_from_7d4dc76e9606dadbb9d55181582b9d9c51e4810b

Merge from google internal, fixing nested class injection/generation and add some extra ClassName tests.
Use @AutoService for Dagger annotation processors.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=70056670
Add a new version of JavaWriter that allows for writing to different parts of the compilation unit simultaneously.  Then, use it in code generation in Dagger 2 code.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=70279532
fix up poms to properly pull in auto-service and future-proof it a bit.
Merge pull request #32 from cgruber/addautoservice

Use @AutoService for Dagger annotation processors.
Merge pull request #31 from google/moe_writing_branch_from_7d4dc76e9606dadbb9d55181582b9d9c51e4810b

Add a new version of JavaWriter (temporarily inside dagger)