Caching programs added

Programs generated by different instances of BatchRenderers can now be
cached, so only one program is uploaded to GPU. This reduces
initialization time drastically.