Optimize creation of bindings for @Inject classes by memoizing Constructors for classes with generated $$AtInject adapters and factories for classes without generated $$AtInject adapters.

Also considered generating factories as part of $$AtInject adapters, but that was potentially bad for android, where increasing the number of classes/methods is a concern.

For [], this CL brings down the CPU cost of FailoverLoader.getAtInjectBinding() in []prof testing from 1.3% of the total [] CPU cost to 0.53% (generating factories would bring it down to 0.27%).
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=67776007
Roll-back a Java7ism (a new supertype for reflection exceptions) that crept in.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=67873841
Bump dagger version to 2.0-SNAPSHOT in the open-source plugin, and update some dependency versions.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=68054782
Minor cleanups in some integration tests.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=68132431
Create a temporary reflective loader for Dagger 1.0 clients that MUST use proguard for obfuscation, before we are ready to migrate to 2.0.  This creates a reflective module adapter and a loader which doesn't even try to load the generated adapters, permitting obfuscated provision and injection points to be inferred from the new class names at runtime, and therefore match and succeed in wiring.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=68211509
Enable members injection in components.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=68276947
Merge pull request #25 from google/moe_writing_branch_from_de48d936fa3f6af25f1afdc3b1422ffaa8d2a142

Merge from Google internal, including making members-injectors work in components.
Provide the component within the graph.  This is crucial for creating sub-components (particularly in new scopes) without having to stash references in threadlocals or static state.

While conceptually simliar to the "injecting the injector" anti-pattern, components are strongly typed, so it can't be abused to create an instance of any bound type.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=68549408
Implement scope.  At the moment, this has no validation on correctness, so you can easily build incorrect compositions of scope, but validation is forthcoming.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=68552057
Merge pull request #26 from google/moe_writing_branch_from_de48d936fa3f6af25f1afdc3b1422ffaa8d2a142

Dagger 2.0 - graphs can provide components, and memoize on `@Scope` annotations.
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.
trySet