Adds Engine::Log to simply print out errors and fix errors with shaders.
Adds acknowledgement for Farooq's backtrace code.
Fixes makefile for release build.
Adds more sophisticated build system in Linux.
Fixes optimization-caused error in gcc.

This code, when optimized, fails miserably. I guess OpenGL cannot read
from the memory it happens to inline the struct? (It removes the copy
and then that memory is unreadable by gl libs?!?)

I obviously don't get it.
Adds error logging to Primitives::VertexArray.
Removes whitespace in World::Map.
Ignores gedit swap files.