Fix CompoundAssignmentNormalizer to create locals with declarations.

A previous patch removed the creation of declaration statement nodes
in the AST during temp local creation. The current JavaScript
generation approach does not rely on the existence of these
declaration statement nodes since it uses the function scope locals
list, but the nodes might be needed in the future.

So this patch is restoring them.

Change-Id: I9a4cf9b4dda02f05ad705f94df8bded24fa8519d
Supplies CompilerContext all over the call graph.

Separate compilation creates the need to have access to loaded
precompiled libraries, the current library builder, options
and the global unitCache all over the call graph. Rather than
add four new parameters to most of the call graph it was
decided to group them together and add just one new parameter
to most of the call graph (and in some places remove some now
redundant parameters).

Going further, existing compilation assumes that build,
source, and public resources should always be accessed out of
resource oracles attached to the module object. But with
separate compilation resource loading needs to be serviced
from a combination of the current module and precompiled
libraries. So the CompilerContext also serves as a consistent
place for compiler code to access resource oracles without
the accessing code having to know from whence those resources
originated.

The rest of the separate compilation work makes heavy use of
the CompilerContext and its presence throughout the call graph,
so while it's weird to be submitting a CL that introduces so
many temporarily unused function parameters its very useful in
that it opens up a lot of the remaining separate compilation
changes to be reviewed in small pieces.

To keep things sane the CompilerContext contents are treated as
read only except at the very top of the function call tree
(like the main function and tests).

Some alternative designs were considered but rejected for
various reasons:
 * dependency injection, would require a massive general refactoring
 * singletons, not thread safe
 * thread local variables, too magical and would lead to odd
   instance hand-offs between threads

That being said design feedback and counter suggestions are welcome.

Change-Id: I1c56dd7cd5d8b333f8ffac455be280a8718d8cd1
Review-Link: https://gwt-review.googlesource.com/#/c/5170/
Add DataGrid.setAlwaysShowScrollBars.

Change-Id: Ifa2c132b6ecfc723b647bef9cabce634b80d8dec
Fix for compiler infinite loop optimizing JS.

A bug in JsStaticEval produced an infinite loop when processing
JavaScript code like

  { return 0;
    { var a; var b; }
  }

Fix for issue 7088.

Change-Id: I58aa65e49f53e550ead910a7a27898385b4a8360
Fix aria-hidden usage in UIObject.setVisible().

When the object is set as visible (setVisible(true)), 
the aria-hidden attribute will be removed.  
When the object is hidden (setVisible(false)), 
aria-hidden will be set to true.

Change-Id: I34c9b96744d5084ca23cb16131c8c84fcd0ae9fb
Review-Link: https://gwt-review.googlesource.com/#/c/5172/
Stopped routing localWorkers # through CompilerContext

When introducing CompilerContext an attempt was made to also remove
now-redundant option parameters, including "localWorkers". But
because of the swamp of option object hierarchy, that this one was
improper. Restoring this option parameter.

At some future date after an options cleanup it may be possible to
route this setting through CompilerContext.

Change-Id: I751a0f24774e8ba58ea92bf1b0b98383a8dd0bcb
Merge from master