Updated to work with 4.2..

I made heavy use of code from the physically_based.glsl shader provided with SD4.2. This has allowed improved visual quality of the shader, but possibly a mismatch with Unity result?