Increase the guarantees about what happens when you call setFuture with a completed future.

Previously it was possible to have setFuture return true and for the future to not be completed with the future due to a racing cancel.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=81446929
Rollback previous change.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=81455024
Do not propagate cancellations to children if it was a result of a child being cancelled
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=81457128
Rollforward the previously rolled back AbstractFuture change.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=81501035
Optimize UriParameterMap.parse() by making fewer passes when parsing and by checking requiresByteLevelDecoding() more efficiently.

The new code is ~25-42% faster in caliper.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=81584621
Fix some bugs related to calling Preconditions.checkNotNull on expressions
that are definitely non-null.

Created via a work-in-progress error-prone check for unnecessary null checks.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=81594383
Fix extendsFromClass().

Checking only the primary upper bound isn't sufficient for purposes like <A extends Foo&Bar>.getSuperType(Bar.class)
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=81782225
Fix a class loading ordering bug on android.

Apparently in some android versions (and/or testing environments, maybe?) Unsafe.getFieldOffset(Field) will trigger initialization (not just loading) of the class that declares the field.  This causes an ordering bug where when the Waiter class is initialized ATOMIC_HELPER is null.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=81812260
In com.google.common.reflect.Types, implement the TypeVariable interface using a dynamic proxy rather than an explicit implementation.

This is to work around a compatibility problem introduced by Java 8. See https://github.com/google/guava/issues/1738.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=81817139
Fix the reference to Utf8#encodedLength.
Gratuitous reformatting.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=81819384
Fix example description which is no longer accurate.

Also, adjust sample code. Let's assume activeInLastMonth is a predicate, rather than a call that returns a predicate.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=82153708
Fix typo in Splitter.limit.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=82158244
Mention splitToList explicitly in the doc comment for Splitter.limit.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=82160580
Add a more efficient implementation of Sets.symmetricDifference.

Background: was looking through the Guava code and came upon a TODO.

An even more efficient implementation could involve using a special consuming iterator to first return the items that are in set 1 but not in set 2, and then add the items from set 2 that weren't consumed (because they aren't in set 1); however, that would either modify the original set or have to use more space.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=82161404