ShaderGen: Handle ShaderCode objects directly.

ShaderGeneratorInterface does not have virtual function members, so we have to implement each type explicitly.