Added GafferScene.PrimitiveVariables node.

This allows arbitrary primitive variables with constant interpolation to be added to objects.
Added a space into the PrimitiveVariables menu item.
Improved PrimitiveVariables node documentation.
Merge pull request #791 from johnhaddon/primitiveVariables

Added GafferScene.PrimitiveVariables node.
Added string matching function.

This is extracted from PathMatcher and will be used as the basis for unifying string matching across Gaffer as required by #707.
Added numericSuffix() function to StringAlgo.h.

This allows us to remove some duplicated code from GraphComponent and BranchCreator.
Added a Duplicate node to GafferScene.
Merge pull request #794 from johnhaddon/duplicate

GafferScene::Duplicate
Tidied OSLShader.cpp.

Moved methods unrelated to shader loading out of the shader loading section.
Moved OSLShader shading engine cache into anonymous namespace.

We don't want to expose it as part of the public API.
Added OSL metadata accessors to OSLShader node.
Fixed module import order and namespace pollution issues.

You can now simply "import GafferOSL" or "import GafferScene" without first having to import the modules they depend on, but they don't include those modules within their own namespace.
Specifying lockgeom=1 by default for all OSL shading engines.

This means that primitive variables (user data in OSL parlance) are not automatically mapped to shader inputs unless those inputs have explicitly set lockgeom=0 in the source (which is rare). This almost doubles the speed of a simple image noising operation.
Fixed OSLShader::acceptsInput( NULL ) crash.