Adding initial support for generating shader uis from shader annotations. Currently all widget types defined by the OSL specification are supported. Up next - support for the "page" and "help" annotations.
RenderManShader UIs generated from shader annotations.

Using the OSL metadata spec to define the custom UIs, as it seems like the one with the best chance of becoming widely used. Currently supporting all defined widget types and pages, but not doing popup help yet.

Also added a SectionedCompoundPlugValueWidget, which makes it easy to present the children of a CompoundPlugValueWidget in a UI broken up into sections.
Plug tooltips.

Added a GafferUI.Metadata class which is used to register descriptions for the various node and plug types. Used it to implement tooltip help for plugs, with the tooltip coming from the "parameterName.help" annotation in the case of RenderManShader nodes. We still need to register appropriate metadata for all existing nodes and generate documentation from it.
Renaming argument to match the identical argument in registerNodeDescription.
Merge pull request #112 from johnhaddon/renderManShaderAnnotations

RenderMan shader annotations