ComputeProgram added

ComputeProgram is dedicated to ShaderProgram with a single compute
shader in it.
ShaderProgram class now only contains what is shared between
RenderProgram and ComputeProgram.