Support translation of runtime type literals to closure id generators

Background:
Google uses a system of Javascript diffing and patching called DeltaJS.

This works by storing old copies of previous build versions and
computing vcdiffs between the JS layout, sending only the changed JS
to the client.

In order for this to work efficiently, GWT's output needs to be stable,
and it needs to be run through Closure Compiler to rename variables
according to Closure's Stable-Renaming-Map. This ensures new builds get
the same obfuscated identifiers as previous builds.

JRuntimeTypeLiterals currently either translate to strings, or to
numeric type ids. This patch adds a third option equivalent to using
strings which are replaced by the Closure Compiler with a more
compact representation.

See https://code.google.com/p/closure-compiler/wiki/IdGeneratorAnnotations

When this mode is enabled via a CompilerParameter, and JsInteropMode is
CLOSURE, a runtime type like 'Serializable' will be written in
cast maps and instanceof expressions as

jsinterop.closure.getUniqueId('Serializable')

After Closure Compiler compilation, this will be replaced with a short
static string that is stable across compilations.

Note that usage of this requires your linker to provide an implementation
of jsinterop.closure.getUniqueId

This is highly experimental and specialized for use by internal hybrid
Closure/GWT apps, so it is not recommended for use and will eventually
be replaced by a more official mechanism for GWT and Closure to
operate together.

Change-Id: I8c9fa20fc62e925c2ef1c000dd8190af5ec3f433
Revert "Support translation of runtime type literals to closure id generators"

This reverts commit 2130b493b84240d0a7205cd4842b01a6da1cc8f1.

Bad merge during rebasing.

Change-Id: Id928e58fc19a7818752b6e6f2f5c13874804bec3