This class is meant to manage events and listeners which are basically functions that are called when an event of a given name occurs.
The class provides a function to register listener callback functions for a given event type.
There is also another function to trigger the notification of an event. When an event occurs, this class function calls the registered callback functions for the specific type of event, passing an optional event data structured that may provide more details about the event that occurred.
This class is meant to be extended for use by other classes.