SharedState: Throw exception on errors (and handle them)

First up: throw if chdir(gameFolder) fails.
Shader: Throw on compile/link error, and print info logs

Also let go of the startup debug prints when compiling.
The engine will now tell us properly which shader fails
at which part.