Changed shader.go's NewProgram to accept gl.Shader instead of glh.Shader

I think that it makes more sense this way, because it means that you can do the following:
```golang
vertex_shader := glh.MakeShader(gl.VERTEX_SHADER, vertex_shader_src)
fragment_shader := glh.MakeShader(gl.FRAGMENT_SHADER, fragment_shader_src)
shader_program := glh.NewProgram(vertex_shader, fragment_shader)
shader_program.Use()
```
rather than needing to create a glh.Shader manually (because I can't find a function to create one).

If there's a reason it was done the other way, please let me know! I'm still fairly new to the whole 'contribute to open source' thing.