Add Element class, base class for GUI elements
gdk/engine/Element: Frame, Anchor, Texture as member variables

These data won't freed or allocated directly by the Element. That is done
through the GUI class
Hoverable: Now accepts pointer coords
Hoverable: Add OnHover callback
gdk/engine/Element: Inherit Hoverable
gdk/engine/Element: Fix incorrect Texture pointer var
gdk/engine/Element: Trivial constructor
gdk/engine/GUI: Add class description
gdk/engine/GUI: Inherit Drawable
gdk/engine/GUI: Add Canvas, a Frame that is the renderable area
gdk/engine/GUI: Factory function accepts initial Canvas size
gdk/engine/GUI: Allocate Canvas frame