Some more refactoring of TypeResolver.TypeTable. I was in a hurry. The TypeTable code wasn't in a form I'd LGTM.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=44403308
Fix up some javadoc in TypeToken re: TypeLiteral.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=44411479
Add static factory methods to Stopwatch: createStarted() and
createUnstarted().
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=44465501
Throws UOE in MutableTypeToInstanceMap Entry#set()
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=44465568
Add Class-Path cycle detection to avoid StackOverflowError
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=44466033
Copy ByteStreams.asByteSource(byte[]) to ByteSource.wrap(byte[]).
Copy CharStreams.asCharSource(String) to CharSource.wrap(CharSequence).

Add package-private CharSequenceReader and tests, for use by the CharSource.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=44506727
Nullability fixes.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=44514905
Replace new Stopwatch().start() with Stopwatch.createStarted().
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=44515274
Change ByteStreams.asByteSource calls to ByteSource.wrap and deprecate it.
Change CharStreams.asCharSource calls to CharSource.wrap and deprecate it.
Change both deprecated methods to delegate to the replacement method.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=44516201
new Stopwatch(); -> Stopwatch.createUnstarted();
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=44556107
Reduce redundant iterator creation in Multimap.putAll(K, Iterable<? extends V>)
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=44559924
Deprecate the constructors in com.google.common.base.Stopwatch and Stopwatch#elapsedMillis and #elapsedTime.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=44568679
A few small hash changes.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=44571077
Fix typo in javadoc: the name of the method to override is "compare", not "compareTo".
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=44580155
Add isPrimitive(), wrap(), and unwrap() methods to TypeToken
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=44620879
Fix a copy/paste mistake in CharSource javadoc.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=44648058
Convert GWT-only tests into normal tests.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=44698403
remove the queuedListeners lock from both ServiceManager and AbstractService.

The original idea of splitting the queuedListeners queue into one queue per listenerInstance didn't pan out because it didn't actually solve the issue of not holding a lock while submitting the listener to the executor.  So this is a different strategy.

I pulled all the listener execution logic into a new class called ListenerQueue which is analogous to ExecutionList (not sure about the name though...) which cleaned up both AbstractService and ServiceManager.

The approach is two-fold
1. do not remove a listener from the queue of listeners until it has definitely been submitted to its executor
2. ensure that submitting a listener to its executor happens no more than one time (using a lock).

N.B. we are still vulnerable to a weird or buggy executor implementation. If calling execute(runnable) runs for a long time without calling runnable.run then we can still deadlock.  I don't believe we can actually solve this problem without giving up on the ordering guarantees.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=44709344
Fall back to countByReading if InputStream available always returns zero.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=44796829
Mention the use of slice(offset, length) for viewing a range in the array to the ByteSource.wrap javadoc.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=44798251