Add abstract BaseScenarioEvent (closes #222)