Added HasBaseType to TypeTraits.h.
Added Renderer::ExternalProcedural class.

This is a lightweight class for use as a placeholder, specifying to a renderer backend that they must load the true procedural from disk.
Added ExternalProcedural object type.

This derives from VisibleRenderable, allowing a representation of an external procedural to be edited, saved, loaded, copied, hashed, grouped etc. It is suitable for passing through a Gaffer graph, and will form the basis for representation external procedurals in Gaffer. When rendered, it is passed to the renderer as a lightweight Renderer::ExternalProcedural.
Added external procedural support to IECoreRI::Renderer.

ProcDynamicLoad and ProcDelayedReadArchive are supported but there is no support for ProcRunProgram yet. Parameters may be passed to ProcDynamicLoad either from a single ri:data string parameter, or from arbitrary parameters which are serialised automatically into a command line style. This seems a reasonable way of dealing with the "all in one string" limitations of RenderMan procedural parameters, and since Yeti uses a command line style parser, arbitrary parameters should be useable with at least one third party procedural we're interested in.
Made ExternalProcedurals draw as wireframe boxes in IECoreGL::Renderer.
Fixed include order in IECoreGL/Renderer.cpp.
Added support for external procedurals to IECoreArnold::Renderer.
Merge pull request #334 from johnhaddon/externalProcedurals

External procedurals