event messages: message_queue now works with shared_ptr which is responsible for event_message deletion.
all internal event_message processing functions take const event_message&