Add Map support to RequestFactory

Properties of the key and value types can be loaded using with()
and a special map properties syntax. The syntax simply requires
adding "keys" and/or "values" after the map property name e.g.
.with("someMap.keys.propertyInKeyType") or
.with("someMap.values.propertyInValueType")

Note that null keys are not supported.

Bug: issue 5524
Change-Id: I6dd3c8a9862473954a72ccee96212c20d9198b22
fix compile error in mailbox sample

Change-Id: I7751396bdd2a26caf42c0686be68708b8e681d93
Give developers control on fragment merge via the Class literal parameter in GWT.runAsync().

The code splitter will put the code for all runAsyncs that specify the same class literal
as the first parameter in the two parameter GWT.runAsync call in the same code fragment.

Fixes issue 8130.

Change-Id: Icc445f880dbefca8fc5d3738f93f3e7de8ef05e6
Adds a unit cache that finds compilation unit instances in a library group.

ContentId based lookups are not supported since having multiple versions
of the same compilation unit in a set of libraries would be an error.

Removals are not supported since libraries are immutable and the
removals would only be needed if library contents were invalid.

This class is an integral part of reusing previous work (previously
compiled compilation units) from library files created in previous
compiles of dependency library modules.

Change-Id: I9b67f8fecbcad56a0b1197532fccc811ff3030c1
Review-Link: https://gwt-review.googlesource.com/#/c/4990/