Super Dev Mode: replace public event logging API

- RecompileListener is deprecated.
- JobChangeListener is the new public API.

The new listener takes a JobEvent, which is designed
so we can add new public properties easily. JobEvent
replaces the old Progress class. I added property
validation and one more status for a failed compile.

Command line interface changes:

- Check earlier if a supplied module name is invalid.

HTTP API changes:

- For /progress, I renamed "stepMessage" field to "message",
and removed finishedSteps and totalSteps.

I removed the step information since it's unused and
will be tricky to calculate. We can add it back later
if needed, but compiles normally won't take that long.

ModuleDefSchema: extracted a method to check if a property
name is valid.

Change-Id: Ic69984c7090ca6458f3e467d6b431cc1e4904000
Review-Link: https://gwt-review.googlesource.com/#/c/9084/
14 files changed