Initial suggestion for extension implmentation.

The general idea of the event system is this:

1. Create an event
2. Broadcast it
3. Any listeners for that event can process the event, and if desired, consume it to block further processing.

In this instance, a `PreBuild` event is emitted with the configuration information.