glCreateProgram() only when the program exists
glCreateProgram() only when the program exists

This can give better error messages in the case that someone tries to
use a disallowed permutation. Instead of segfaulting when the shader is
used due to null uniformFilewall pointer, you get a ShaderException
describing the permutation. The key is that the 'program' field needs to
be 0 to know that the shader was not built.

DaemonEngine/Daemon,DaemonEngine/Daemon,DaemonEngine/Daemon,DaemonEngine/Daemon