Rework events a little.  Now, events do not need to be predefined and do not take callbacks.

Raising an event still validates that the event has been seen previously.