use unions in triton event messages
Right now all of the triton events are organized as flat structs rather than breaking them down into unions based on how the msg is being used at any given time.
We should follow the example of the swim protocol model to reduce event sizes and make it clearer which handlers are setting which fields.