Evented base class to use in favor of mixing in event methods

Closes #2280