update gitignore to properly avoid maven target folders.
Revert parts of the .gitignore fix related to ant.
Replace guava 11 with 16 and extract Guava as a separate dependency.

Also, tidy up a teensy bit of test infrastructure, make sure OSGI test is excluded since it's designed for ant-only, and make maven tests fork, as they run out of permgen consistently. Lastly, make the build system enforce a 1.6 minimum, not a 1.5 minimum.
Add ignores for ant build spam.
Make ServletScopes#scopeRequest slightly more efficient for larger seed maps.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=61542674
Change LinkedBindingBuilder.toProvider(Provider) to accept a jsr330 provider,
in addition to the Guice Provider.  This is an incompatible change for people who extend LinkedBindingBuilder, but not for people who use it.

This will allow people to switch to JSR330 types more easily.

LinkedBindingBuilder needs both toProvider(Provider) and toProvider(javax.inject.Provider) because precompiled jars (e.g, stuff in third_party, maven, etc..) that used toProvider(Provider) would otherwise throw a NoSuchMethodError.

I left the getProviderInstance method on ProviderInstanceBinding, otherwise
that would require anyone using the SPI method to change their code to accept
the weaker type.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=61966924
Improve OutOfScopeException so that it tells you which key it was trying to
get.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=62699406
This change removes final from fields annotated with @Inject.  In addition to being discouraged due to weak semantics [1], it is incompatible with the standard javax.inject.Inject annotation [2].

Refactoring: https://code.google.com/p/error-prone/wiki/GuiceInjectOnFinalField

[1] https://code.google.com/p/google-guice/wiki/Injections#Field_Injection
[2] https://code.google.com/p/google-guice/wiki/JSR330
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=62760764
Add an SPI for @Provides methods (using the extensions SPI) so that users can
do more analysis (with the enclosing instance, method, etc..).

Notably, this can let users write analysis that looks for @Provides methods
declared with @Nullable, and compare against injection points w/o @Nullable,
failing if so.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=62834918
Update MapBinder so it fails on duplicate bindings with a more descriptive error message, including all the keys that had duplicates and where the duplicate bindings were bound.  Example error message that has 'a' bound twice and 'b' bound twice:

1) Map injection failed due to duplicated key "a", from bindings at:
	com.google.inject.multibindings.MapBinderTest.configure(MapBinderTest.java:337) (via modules: com.google.inject.multibindings.MapBinderTest$1Main -> com.google.inject.multibindings.MapBinderTest$1Module1)
	com.google.inject.multibindings.MapBinderTest.configure(MapBinderTest.java:344) (via modules: com.google.inject.multibindings.MapBinderTest$1Main -> com.google.inject.multibindings.MapBinderTest$1Module2)

 and key: "b", from bindings at:
	com.google.inject.multibindings.MapBinderTest.configure(MapBinderTest.java:345) (via modules: com.google.inject.multibindings.MapBinderTest$1Main -> com.google.inject.multibindings.MapBinderTest$1Module2)
	com.google.inject.multibindings.MapBinderTest.configure(MapBinderTest.java:352) (via modules: com.google.inject.multibindings.MapBinderTest$1Main -> com.google.inject.multibindings.MapBinderTest$1Module3)

  at com.google.inject.multibindings.MapBinder.initialize(MapBinder.java:380)
  at com.google.inject.multibindings.MapBinderTest.configure(MapBinderTest.java:357) (via modules: com.google.inject.multibindings.MapBinderTest$1Main -> com.google.inject.multibindings.MapBinder$RealMapBinder)
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=62865462
Update the opensource jars to asm 5.0, fix up the POMs & ant scripts.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=63496902
Fix .gitignore to account for extensions.
Added updated 4.0 api diffs.
Added updated Javadocs.
Fix uploadJavadocs.sh script to work with git.
Revert "Added updated 4.0 api diffs."

This reverts commit 8240b434a5922173fb53e5946cabc54e55512798.
Added updated 4.0 api diffs.
Fix up API diffs upload script.
Unbreak MOE by adding a .gitignore to extensions (suppressing build/ folders under it) and narrowing the exclusion of bduild folders in the root to just at the root.  This lets /lib/build exist and be used, including by MOE.
Memoize Key#toString() to reduce allocations.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=63557612