Add calls to flush() after writing to streams in ByteSink and CharSink.

It turns out that, under JDK6, FilterOutputStream.close() calls flush() and ignores any IOException it throws. This seems like pretty bad behavior, but we can work around it by manually flushing first. Doesn't seem like this should add much overhead for streams that don't require flushing before close either.

On the other hand, this only applies to:
- subclasses of FilterOutputStream
- for which flush() does something
- which do not override close() themselves
- not running under JDK7+
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=43795021
Add Funnels.sequentialFunnel, an Iterable funnel wrapper, to Funnels.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=43840825
Fix FunnelsTest to @GI Funnels.sequentialFunnel tests
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=43846130
Add benchmarks to determine the overhead of the various stats calculation algorithms.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=43849595
Simplify StandardTable implementation in common.collect.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=43866642
Test and document LoadingCache's behavior in the face of InterruptedException (mostly by linking to the new <http://code.google.com/p/guava-libraries/wiki/CachesExplained#Interruption>).
Also, update some unrelated broken links: http://web.archive.org/web/20090301165914/http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#101089 => http://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html#jls-3.10.6

External bug: https://code.google.com/p/guava-libraries/issues/detail?id=1122
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=43892475
Make GwtPlatform available to server-side applications.
It's not actually used there, but dev mode clients do use it, and it won't be available to them unless it's compiled by javac as part of our GWT targets.

One complication: The obvious way of doing this requires the server-side code to depend on the GWT target containing @GwtScriptOnly.
This might be OK (though we'd have to check with at least one project, whose tests flag the new dependency), but it turns out to be unnecessary:
@GwtScriptOnly has an effect only on the supersource class (which makes sense, since it's the supersource version that's the one being used in JavaScript only -- the GwtPlatform files I'm editing here are more like @UseThisInsteadIfNotGwtScript).
Thus, I can remove it from these versions of GwtPlatform.

http://code.google.com/p/guava-libraries/issues/detail?id=1328
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=43892696
Remove Google specific headers from HttpHeaders.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=43894977
Fix SafeTreeSet so delegate.tailSet() is wrapped by a new SafeTreeSet as is headSet() and subSet()
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=43905970
Add Funnels.stringFunnel(Charset) overload.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=43908416
Deprecate ForwardingSortedMap.standardRemove, which has been discovered to interact badly with a bug in JDK6, and was never used in Google.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=43914919
Refactor out some common functionality in the HttpHeadersTest.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=43918498
Update version number, factor out common config, plus a few nits, specifically:
* 15.0-SNAPSHOT is the new release target
* Plugin-management for commonly configured plugins moved into the parent.
* Dependency management into the parents (for version and scope)
* Make findbugs/javax.inject from provided to default (compile) scope, but mark optional.
* Move Resources and sources paths into parent leaving exceptions in children.
* Add a few helper comments for maintenance.
* Add exclusions from Truth and Caliper to force use of guava being built.

There are a few ways this could be locked down more, plugin versions implicitly pulled, etc., but not really necessary - just the ones we explicitly use and configure are important. There are other checks we could do, including pulling in errorprone or checkstyle to help developers building locally submit conformant patches, but this is a further evolution that can wait.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=43918640
Add boolean parser to cache builder. add flag for record stats.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=43956416
Remove the synchronized keyword from the ServiceManager.ServiceListener.startupTimes() method.  It is unnecessary and potentially dangerous (I'm pretty sure it could actually cause a deadlock due to lock ordering!).

See https://code.google.com/p/guava-libraries/issues/detail?id=1340
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=43975294
Make ImmutableMap extend ImprovedAbstractMap.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=44002262
Automated g4 rollback of changelist 44002262.

*** Reason for rollback ***

Breaks more ImmutableMap mockers.

*** Original change description ***

Make ImmutableMap extend ImprovedAbstractMap.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=44008499