Use map_err everywhere to add context / file paths when possible. Also add some basic compile_fail doctests for missing / bad syntax shader sources.