Puts name, dep names and tgt lib xml into lib files.

More specifically, this patch adds to the module
parsing/loading process to place the name of the current
module, names of external dependency modules, and the contents
of target module xml files into the library file currently
being constructed.

These constructed library files contain the precompiled results
of stages in a separately compiled tree of dependencies. They
make possible the caching and reuse of previous compile work,
the parallel compilation of unrelated modules and so facilitate
separate compilation in general. Eventually they could also be
used in monolithic compiles as well.

Throws an error in LibraryGroup if duplicate library names are
seen.

Renames LibraryBuilder to LibraryWriter to avoid "builder
pattern" confusion.

Splits NullLibraryWriter and MockLibraryWriter so that it's not
weird that one has getters.

Change-Id: I10e95eb1ed3c56eb2e2a14f7e898dad6643abf42
Review-Link: https://gwt-review.googlesource.com/#/c/5505/
12 files changed