A lot of changes in spirv-opt output. Some new invalid SPIR-V was found but most of them were not significant for SPIRV-Cross, so just marked them as invalid.
Forwarded temporaries would never declare a temporary. Figure out all result types ahead of time so we can deal with those temporaries as well.