Added ShaderTemplateManager. Haven't implemented the apply_template function... need to sort out at what level we apply a template to a shader, since it's really the "formula" to creating a shader, and not additional behavior (components) or settings (properties) which is the case with the EntityTemplateManager...