Refactor event system

We now use enums for the event types, which are type safe. All existing event points in the converter and downloader have been updated.