Added monolithic/separate branching to JavaToJavaScriptCompiler.

Separate compilation branches in JavaToJavaScriptCompiler takes care to
avoid most optimization passes, the Pruner, and StringInterner. It also
triggers generators prior to UnifyAst and drives them differently.

Added Generator triggering and runtime rebind rule creation functions
to Rule classes, so that they can be driven by the new non-monolithic
JavaToJavaScriptCompiler pathway.

Added a RuleBaseline to be the creator of fallback runtime rebind rules.

Change-Id: Id825773c26d4efb6e934ae1b30c4792419785020
Review-Link: https://gwt-review.googlesource.com/#/c/6070/
Revert "Put JavaScript globals into namespaces in Super Dev Mode"

This reverts commit 7ed2e49921fb67ac4998186a7b33f421d2b42729.

Change-Id: I77da22cbfd0d1137412b0e13f5038a21e10cfe71
Merge remote-tracking branch 'upstream/master'
Use System.currentTimeMillis() in LogRecord

Change-Id: Idd331b766953874664a966645a1a75d106b016f1
Let Duration, Random, System use Date.now()

Change-Id: I14029a2df997726cf17aa426d4d50cb80aa9600a
Fix ModuleSpace.rebind to not swallow exception

Bug: issue 8514
Change-Id: Ic93c39a6ab21ca4bb71958e10880867a00ca4b88
Updates DelegatingGeneratorContext to avoid updating subclasses.

Change-Id: Iefb949b935c8ee0b694f64209fe00334dcbf48ab
Merge remote-tracking branch 'upstream/master'
Revert "Updates DelegatingGeneratorContext to avoid updating subclasses."

This reverts commit 042c99deb079988e1fb128a471db6ec5b3526363.

Change-Id: I4c4af6e7b3fd29c26af7977f325cac3c558bd717
Revert "Added monolithic/separate branching to JavaToJavaScriptCompiler."

This reverts commit 5a972863fdc9dfabffb2db41bd20085d6c77dea6.

Broke CompilePermsServer.java

Change-Id: Ib718fbb03154a40c76fc06d265bcd716896f01aa
Use -war instead of -out for generated project files

Bug: issue 8542
Change-Id: Iad321e52848b9ceba18d200bf39b5b571897d2c6
Put JavaScript globals into namespaces (take 2)

(There is no user-visible change since it's not turned on in this patch.)

This is to work around a Chrome limit on the number of global variables
when attempting to run a large GWT app in Super Dev Mode. It should also
make the debugger somewhat easier to use because not as many variables
show up under "window".

Implementation: a new compiler pass creates a separate JavaScript
namespace for each Java package. Each namespace contains the functions
and global variables for that package.

By default, package namespaces are generated by taking the first initial
from each name in the package path, so for example, "com.google.gwt"
becomes "cgg" unless that name is already taken.

TODO
 - enable for Super Dev Mode
 - add a flag to the regular compiler.
 - Tweak the pretty namer so that it doesn't rename globals as often.
A variable that's moved to a namespace only conflicts with other
variables in the same namespace.

Bug: issue 8532
Change-Id: I9f20d247ecf932dbc6c805ea43648d81241b2ef2
Merge remote-tracking branch 'upstream/master'