Added AbstractElementEvent to provide common data for events with elements.
Added SetEvent and SetListener so that extensions can register a hook for Set commands.