ShaderProgram no longer stores each Shader it uses
Refactored TileGridRenderer a little