Shader layout

Patch includes:

- load vertex and fragment shaders from files
- compile shaders
- create a shader program from a vertex and fragment shader
- retrieve GL logs on the compile status of shaders
- retrieve GL logs on the link status of programs