Added GuiOpenEvent

You can use this for a clean way to override guis, without needing an
TickHandler to check if the gui you want to override is open and show
your own gui

Proper close check