merge Vertex and PixelShaderCache into ProgramShaderCache this is the first step, uniform handling is still missing