Loads of changes

Seperated engine and rendering. Implemented a Task system in the engine
allowing for diffrent modules to execute after in the engine Thread
after all movement is done. Allows for easy addon development since no
changes are needed to the engine to make new modules execute.