Changed ProxyFactory so that AOP generated proxy classes can be shared between injectors.  We leverage cglib's cache, which required us to defer setting the callbacks until the instance is about to be created. It also requires us to support equals() and hashCode() for all objects used to configure the Enhancer.

In Guice v1, Injectors were almost always long-lived so the extra permgen space wasn't an issue. But now that we support child injectors, since it's a lot more likely that injectors will be created, used, and discarded.

Also some misc. changes: 
 - adding my @author tag to TypeLiteral. I wrote the new type resolution stuff here.
 - changing SingleParameterInjector to use Object[0] rather than null to represent an empty set of params.


git-svn-id: https://google-guice.googlecode.com/svn/trunk@720 d779f126-a31b-0410-b53b-1d3aecad763e
4 files changed