Improvements to shader build
+creates directory for built file if it doesn't exist
= build will now fail if the expected output file doesn't exist on completion