ShaderParam - initial draft with corrections

Applied corrections from @cmr and @csherratt, also added the generated code.
"Three.js comes *the* closest to being safe"