Rename variables and extract methods
SpecRunner.mon: improve management of ids

Change 'global' counter to local variables
SpecRunner.mon: clarifies how examples are run
Report explicit failures

It uses a new internal event for failures that also contains information
about the context of the failure (outer contexts and example texts).
The older event may become part of an external interface for custom
assertions.
Improve sample monitor (deeper example)

Buries an example one level deeper to verify how nested contexts report
its failures.