Listens to compilation events and reacts to them. This abstract class does not have a real implementation; subclasses should override {start} and set up notifications to listen to.
@abstract Subclasses must override {start} and may override {stop}.
Starts the listener. Subclasses should override this method and set up listener notifications.
@return [void]
@abstract
Stops the listener. The default implementation removes self from all notification center observers.
[Validate]