Improved shader API

The old way was not flexible for different types of shader. This PR introduces
the ability to specify any number of shaders and what they should be.

	program := glh.NewProgram(glh.Shader{gl.FRAGMENT_SHADER, `
		... shader code ...
		`})