Separate events subsystem

Public interface for subsystem is "engine.Job" as was requested by @shykes