OSL Integration

This introduces a new module for the loading and execution of shaders written using Open Shading Language. Shading networks can be used to manipulate images using the OSLImage node and objects in a scene using the OSLObject node. In this initial implementation I've only figured out how to get a single colour result out of the shaders, and that maps to the RGB channels for image processing and to P for object deformation. In a future version I hope to allow arbitrary outputs to be written, allowing us to write to any channel/primvar.

I also had to fix up a few more general things to get this working - I've put those commits at the start to separate them out from the OSL functionality.