Simplifies Multibinder by moving Key generation to RealMultibinder's
constructor.

Tested:
All existing tests pass.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=79159620
Simplifies MapBinder by moving Key generation to RealMapBinder's constructor.

Tested:
All existing tests pass.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=79160583
Make SpiUtils tests more accurate by multiplying the expected results instead
of dividing the actual results. Before, some bindings weren't being checked
and this was overlooked by the tests due to rounding down the number of
leftover bindings.

Tested:
All existing tests pass.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=79167431
Adds a binding for Collection<javax.inject.Provider<E>> to Multibinder.
Before, only a Collection<com.google.inject.Provider<E>> was bound; now
both are bound.

Note that this required changes to SpiUtils because MapBinder uses a
Multibinder to bind Set<Entry<K, Provider<V>>. There is a bit of
strangeness here because it means that there is now a binding for
Collection<javax.inject.Provider<Map.Entry<K, Provider<V>>>.
Tested:
All existing and modified tests pass.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=79191051
Adds a test that explicitly tests all of the bindings created by MapBinder.
Current tests rely on SpiUtil to validate all bindings, but those tests are
hard to read and reason about; this test is explicit.

Tested:
The new test passes.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=79369985
Robustness: wrap any calls to System.getProperty in case security is enabled.

Since calling System.getProperty may throw an exception on locked-down systems.

Note: this patch has the side-effect of making the 'guice_include_stack_traces'
setting static, rather than querying the system property each time a module is
installed. Making the setting static improves performance as System.getProperty
can be a bottleneck, at the cost of being able to change the setting
on-the-fly.

(This is a slightly modified version of the pull request from #872.)
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=79427020
rm unchecked suppression.
Merge pull request #878 from google/moe_writing_branch_from_1215316c7bae68bde9133f8fffa43c074c156633

Merge internal changes.
Merge remote-tracking branch 'upstream/master'
Sync PATCHES