OSL Improvements

A miscellaneous bunch of improvements to the OSL code. The main one is the addition of accessors for the shader metadata - that plus the UI refactoring currently being done should make it pretty straightforward to support custom UIs for shaders in the future.