Added modular preprocessor support for events.

Events can now allow for preprocessor registrations to give modules the
opportunity to intervene in event preprocessing to give events custom
functionality from other modules.  Modular preprocessing support is
dependent on the event's implemented functionality.  The current events
will not have support for modular preprocessing, but if it is needed by
a developer, they can edit the event and allow this feature.