Added event handling on gui elements

onClick and onRelease functions can be assigned to GuiElements through
EventFunc function pointers

methods click() and release() of GuiElements will recursively call their
children's