Refactored shader

Moved pre compiling stuff to a ShaderSource class