Refactoring of shader constructors

Simple refactoring for shader construction in preparation for async
creation