shader: implement cache for shader source code (this was previously (partly) done by httpcache in filesystem, which is gone now).