Refactor shader architecture to work around subclassing limitations. this is better anyway.
Add a color tinting shader.