RenderMan shader annotations

This pull request implements UI customisations for RenderManShader nodes by reading annotations from the shader file. The annotations follow the OSL standard for shader metadata, because that seems like it has the best chance of becoming a standard.

As part of this process, I added a GafferUI.Metadata class, which is used to register descriptions for nodes and plugs. In the future we should be able to use this to automatically generate reference documentation.