Added event_perform and user events. Note that the event system needs to be changed somehow to cater to event_perform as things like the sub checks from events.res do not want to be included in the event call and it messes up a lot of the calls as things stand. So right now event_perform can be used nicely with some of the events but not all, user events are fine if you want to use them.

For note I just added the event_perform functions and constants in action.h because I didn't know where to put them and I'm lazy. So they need to be moved at some point.