Add tests for ConcurrentSkipList{Map,Set} and for a TreeMap with no comparator.
The latter requires suppressions for the same reason that our no-comparator TreeSet tests do: The first element is wrongly permitted to be inserted even if it's null.
Also, fix up a few misnamed methods and a copy-pasted doc comment.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=33468471
Reconcile the cancellation semantics for Futures.combine, successfulAsList, allAsList, and withFallback to be consistent with Futures.transform.  Now, all cancellations are back-propagated to the input futures.  We also expose the interruption state in AbstractFuture with a protected method.  To ensure the interruption state is correct and threadsafe, we add an additional state to AbstractFuture's inner Sync class to atomically distinguish between cancelled and interrupted.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=33468640
Release Futures.withFallback to Guava.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=33473424
Changed AbstractInvocationHandler#equals() and hashCode() to delegate to the invocation handler, to allow customization. I needed it to create dynamic proxies that works for SerializableTester.reserializeAndAssert().
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=33639720
Added AbstractPackageSanityTests to apply automated sanity tests for an entire package.

Yaks I needed to shave:
- move a piece of reusable code from NullPointerTester into a new DummyProxy class.
- Added a few new default values to ArbitraryInstances. (I'm thinking to change the default value of numbers to 1, in a separate CL)

Added PackageSanityTests to common.reflect and common.testing, as dogfooding. Had to add some @Nullable and missing checkNotNull() as a result.

Since APST is classpath sensitive, there are a lot of top-level class fixture files in the packagesanity package and each test case corresponds to a single java_test rule. That makes the CL more daunting than it actually is.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=33660554
Fix thread-safety of EventBus.

In a previous change, handlersByType was converted from a ConcurrentMap to a SetMultimap. However, the SetMultimap returned by Multimaps.newSetMultimap is not threadsafe when concurrent operations update the multimap, even if the map and set factory are. This can cause registered subscribers to stop receiving events because they are dropped from the multimap.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=33680249
Allow synchronous calls to EventBus.post().

As we're only reading the set of registered event handlers when an event is posted, it is more efficient to split the lock on handlersByType into read and write locks and only acquire the write lock in register() and unregister().
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=33685413
Extracted FreshValueGenerator from ForwardingWrapperTester to a stand-alone class so it can be reused for automated equals testing.

Fixed a bug in freshCurrency() because apparently no all Locale's can be passed to Currency.getInstance().

Also added Parameter.getInvokable(). I find that not having it forces me to pass around the Invokable together with the Parameter, which is inconvenient. And the backward reference isn't unprecedented, Method.getDeclaringClass() does it too.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=33689642
Experimental EventBus CL that reduces the overhead of reflection in the
case where a lot of EventBus instances are created and the same type of
objects are registered on all of them. This makes a difference of about
4x in one app.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=33742203
Clarify the wording of the exception messages in Optional subclasses.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=33759112
Change the default executor of the AbstractScheduledService so that it is shutdown when the service reaches a terminal state.  This ensures that a stopped service cannot prevent the JVM from exiting.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=33759240
Simplify places in CharMatcher where StringBuilder is used unnecessarily.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=33785205
A number of small changes and fixes in EventBus:
- flattenHierarchy was catching an exception that couldn't be thrown because the CacheLoader doesn't throw a checked exception. Fix it to catch the right exception type.
- Change eventsToDispatch to use non-thread safe queues since it's a ThreadLocal.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=33790152
Update javadocs to suggest using a PQ or MMPQ if the entire iterator
cannot be held in memory at once.
Add test for leastOf including null elements (the reason we can't use
an ImmutableList as a return type).
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=33790169
Add a single parity test with known output from SMHasher (python).
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=33886930
Remove Eclipse-based compiler error "The method set(int, Optional<V>) in the type List<Optional<V>> is not applicable for the arguments (int, Optional<capture#66-of ? extends V>"

Also, remove unused import. (!)
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=33894774
External Guava issue 1148: avoid explicitly copying ImmutableEnumSets
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=33899746
Document the NPE in UnsignedLongs.parseUnsignedLong
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=33899913
Rename expandFor in Immutable builders.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=33900350
Fix a compile error in Java 7:

error: name clash: apply(T#1) in Predicate and apply(F) in Function have the same erasure, yet neither overrides the other
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=33900718