Updated OSLRenderer for OSL version 1.4.

Backwards compatibility with 1.3 is maintained. Also updated the default build options to use 1.4.
Defined supported closures directly in OSLRenderer.

In future OSL versions (the current master which will presumably become 1.5), there are no built in closures defined by the ShadingSystem, so we must define them ourselves. For current versions, this has the benefit of limiting the available closures to only emission, so that we no longer advertise closures that make no sense in our no-illumination context.
Refactored RendererServices::RenderState.

Moved it out of RendererServices so it is no longer a nested class. Added public userData() method so that RendererServices no longer needs private access. This is in preparation for using the RenderState class to implement most of the work involved in managing shading state.
Refactored OSL ShadingEngine::shade to use new ShadingResults class.

This is in preparation for adding a debug closure type which will enable the creation of multiple outputs.
Added debug closure support to OSLRenderer.
Added "type" keyword to OSLRenderer debug() closure.

This allows named outputs consisting of types other than colour.
Fixed OSLRenderer to work with latest OSL master branch.
Fixed uninitialised debug outputs in OSLRenderer.

The Imath::Vec and Imath::Color default constructors don't initialise their members so we must use a constructor which does.
Merge pull request #699 from johnhaddon/oslUpdates

OSL Improvements