More shader cleanups

That seems to be the rust style now, for better or for worse. If it could have an error-y thing, use a `Result`.