First commit of the basic code

- some gui elements still have to get redone
- other engines (sound, lua) will get added in later commits (have to get redone too)