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.
Cause foo.Bar.Bash$$MembersInjector to be written to hte file foo/Bar$Bash$$MembersInjector, so Bar isn't accidentally turned into a package.