Application: Define Engine methods
gdk/engine: Simple main implementation
Application: Contains GUI ptr as member variable
Application: Private constructor; use factory
GUI: Add factory function
Application & GUI: No longer abstract
Application: Format fix
Application: Delete App if creation fails
Application: Initialize Gui to NULL
Application: Add Window member variable
Merge branch 'gdk' into develop