Updating source code to new code guidelines

- Added GPUProgram class and OpenGL implementation.