Library compilation odds and ends.

Organized JDT compiler type name to NameEnvironmentAnswer resolution
and added LibraryGroup based resolution support.

Limited the scope of some JTypeOracle indexing for library compiles.

Added missing Generator metadata for AbstractClientBundleGenerator.

Made ImplicitCssResource generated css file resource names valid for
inclusion in URLs (so that they can be retrieved via URL reference
inside of zip files).

Change-Id: I936a697c7688d3afbf1ba1e765a1c21e31b31db1
Review-Link: https://gwt-review.googlesource.com/#/c/6552/
Make code generation friendly to separate compilation.

This cl incorporates the logic need to support both globally optimized
compilation and separate compilation.

In particular GenerateJavaScriptAST now generates code only for classes
that are part of the module in the case of separate compilation.

Change-Id: Ic3fdd8560c7fae1c38504c522a1ca3be3fab946c
Fix script-injection tests, now that xsiframe is the default linker

Resets the linker to 'std' for those tests that use a <script> in the
gwt.xml module descriptor file. Ideally, we'd probably want to be able
to use a specific host page, or configure it for the test with additional
script tags.

Also, client coverage seems to only work with the std linker.

Change-Id: Ibea7181792a68af9cc3a0fa2d887098297eeb0fe
Remove duplicated code Collections.sort(List).

Collections.sort(List, Comparator) accepts null comparator that
indicates that natural ordering should be used.

Change-Id: Ie1d9158c16eb46432fd034b135a55dfb6aa876d6
Fix RunAsyncContentTest test, now that xsiframe is the default linker.

Change-Id: Idf80df4e133cab88693032469aee30e8af91ead2
Adds runtime impl for ConditionWhenTypeAssignableTo.

Change-Id: I6282e879042a8dc263e2f3b36fe1cc82c8cce96e
Review-Link: https://gwt-review.googlesource.com/#/c/6554/
Don't assign runtime type ids to uninstantiable types if not needed.

This small optimization was lost in the refactoring of CastNormalizer.

Change-Id: I5e88f13652c14134c5154ad34c4eb0ad5dacd704
Fixes/improves positioning of Menu/MenuBar.

Fixes 2 problems with menu positioning:
1. The menus were misaligned w.r.t their parents esp. in
deep hierarchy:
 http://gwt.google.com/samples/Showcase/Showcase.html#!CwMenuBar
and it was way worse in RTL:
 http://gwt.google.com/samples/Showcase/Showcase.html?locale=ar#!CwMenuBar

2. Menu popups were not smart to position themselves to avoid getting
out of window rectangle.

This patch fixes both issues by mimicking the behavior of modern
windowing systems:
For verticals, it will position itself at the side of the menu with
enough space. While doing that it also inherits direction from parent
to keep menu opening direction consistent.
If the menu still ends up out of window rectangle then it will be
aligned on the side that overflows.

Bug: issue 3888
Change-Id: I933b47674970e228c9361fd5538b8e2e9dd1335f
Review-Link: https://gwt-review.googlesource.com/#/c/6110/
Write the first test for JsStackEmulator

The setup is based on CodeSplitterTest. I removed some of the
duplication in mock resources. (We don't need multiple
mocks of the Arrays class.)

This is preparation for fixing a JsStackEmulator bug.

Change-Id: I0f7cc18b7af0154da0a7b448b1867b8f38f8afa9
Removes AbsClntBndlGen AccessedPropertyNames strictness.

It still needs full dynamic property access when processing CSS
files and that won't change until we define a new generator API.

Change-Id: If39b4473b4ae4d1222f71d9d45d32ec1ed32cbec
Put List to standard mock resources and fixes Comparable mock

Change-Id: Iaf66f3ba423bd07f4646f95055e476a07b6c8269
Creates exhaustive cast maps during library compilation.

Adds array super hierarchy calculation to JTypeOracle.

Adds an exhaustive cast map creator.

Uses the exhaustive cast maps during library compiles.

Change-Id: I020507ec6b0db63c04ba5261e42f0439021f056d
Adds back inlining of JSNI methods.

By mistake data needed for this optimization was not properly
collected after a commit related to integration of separate
compilation (commit 9e1a48b).

Also refactors test infrastructure to add a tests for this
failure mode.

Change-Id: If814099b7602c48709eea1e76ba4f6b69bfa7fa2
Cleans up other remaining references to Opera in the code base

Change-Id: Ib03e573156ecf10421616ad484d558f99a902eb5
Review-Link: https://gwt-review.googlesource.com/#/c/6573/
Adapts UnifyAst for libraries (lazy loading and GWT.create())

Cascades to create a requirement that libraries index compilation units
by both binary and source names of all all nested types.

Change-Id: Icc50571d5fde8ca9cf479fd74f743a959efade77
Review-Link: https://gwt-review.googlesource.com/#/c/6582/
create -Xnamespace flag and enable for -draftCompile 

Bugfix: namespaces are incompatible with JsFunctionClusterer
because it doesn't keep the namespace initializers at the
beginning. So, automatically disable clustering if namespaces
are on.

(I verified that all smoke tests pass if I force namespace mode
to be on all the time.)

Change-Id: I165aa913fc72c1feb3acc25d807bc41a4dda5073
Review-Link: https://gwt-review.googlesource.com/#/c/6553/
Fixes the problem where ? not same as ? extends Object.

This is surprising as they are actually equal in Java Reflection API.

Change-Id: I1de33ea3c75b3291a02f6158aca9ba179700672d
Windows compatibility for SuperDevMode

java.util.File normalizes separators for the platform, so comparisons
with paths with forward-slashes will fail on Windows.
Splitting the filename and directory path is now done using string
manipulation rather than through File.

Bug: issue 8618
Change-Id: Ib10d352dac04ce2b359e98ffa7481b4b6608aab3
Fixes recent regressions to MenuBar.

 - Sets the animationEnabled correctly
 - Checks if parent popup exists before accessing

Change-Id: I83173a88610fe79d4f166afbe7443fb38b94f8fe
Fix daylight time savings bug.

Creating a Date(year, month, day, hour, minute, sec, miliseconds) is
ambiguous if the time falls in the hour after the time was pulled back.

In Java semantics the date created will refer to the latter time,
whereas GWT was relying on the browser to disambiguate, and a recent
release of Firefox handles this case differently.

Change-Id: Ic097bb3bc38862b363dbb377d6c5f9f2f045028f