Better system management

Now can be paused from the start
Uses a thread to leave the main thread alone
better use of the SDL events
better code structure for when we'll go into actual compiling
Merged master: proper key management