Added support for struct parameters in OSL module.
Added some OSL shaders for doing basic vector arithmetic.
Added support for global N in OSLRenderer.
Fixed OSLShader hash bug.

Because OSL shaders are the first shader type we've supported where a single shader can have multiple outputs, we weren't taking into account _which_ particular output was connected when computing the hash.
Prevented vector->color connections for OSLShader nodes.

OSL itself doesn't allow such connections so we mustn't either. Also added a vectorToColor shader to help work around the restriction. At some point in the future it might be nice to automatically insert the conversion shader when generating state() rather than have the user do it themselves.
Merge pull request #615 from johnhaddon/oslImprovements

OSL improvements