Lots of tweaks to shader.h and its utility functions. PipelineRenderer now fleshed out a bit more and is usable. Allows for any pipelinerenderer to use it and avoid alot of repeating of stuff allowing for simpler new renderers and also adding the ability to set new shaders to base renderers. When I have more time I'll add these features to the ComputeRenderer.