Use borrowed Shader pointer in Program ctor so that we can share shaders