Invalidates Generators when input resources change.

When compiling per file:

Modifies ResourceOracle access so that requested resources can be
associated with a currently executing Generator.

Migrates existing Generators to almost always read resources from
ResourceOracle, instead of from ClassPath or URL, so that resource usage
for existing Generators can be tracked.

Starts storing rebinding type to rebound type relations (aka,
FooEntryPoint contains a GWT.create() call for Bar.class).

Starts storing relations from rebound type to resources that are
accessed by Generators invoked to rebind the type.

Starts tracking modified/added/removed resources between compiles.

Uses these relations and knowledge of modified resources to come up with
the list of types to invalidate to trigger reruns of affected
Generators.

Change-Id: I90bc27b472866a46917c8064f1af84889ba87638
Review-Link: https://gwt-review.googlesource.com/#/c/8811/
35 files changed