Adding TaskList

This can be used to collect Executable tasks for dispatching all at once
LocalDispatcher outputs an info message for TaskLists.

Fixes #947.
Bumped version to 0.2.0.0 and updated Changes file.
FrameRange UI displays the value that will actually be dispatched.

This overrides the widget text on the Dispatcher frameRange plug to show the value that will be dispatched, even when not in CustomRange mode. The actual value of the plug remains the same, but the widget displays the CurrentFrame or FullRange when in those modes, and the PlaybackRange updates automatically in that mode (which does change the plug value).
TaskList returns an empty hash
Dispatcher no longer collapses tasks with an empty hash.
Removed unwanted horizontal padding from frameless Buttons.

For some reason QPushButton::sizeHint() always adds on an extra 4 pixels in the horizontal direction, so we have to take them off again using the stylesheet.
Adjusted layouts to account for Button width bugfix.
Fixed bug in GafferSceneTest.SetTest.

It was testing the keys in a CompoundData object, but the order in which they are returned is not guaranteed, hence we had occasional test failures. Comparing a set of keys fixes the problem.
Merge pull request #1028 from andrewkaufman/taskList

Added TaskList
Fixed bug where Shader::NetworkBuilder removed renderer prefixes.

This meant that all shader networks would have shaders of type "shader", which would trigger warnings from the viewport GL renderer.
Made ShaderAssignment use the shader type as an attribute name.

RenderManShader assignments are now stored as an "ri:surface" attribute, arnold shaders as "ai:surface" etc. This allows shaders for multiple renderer types to be assigned and to peacefully coexist side by side in the attributes.

Fixes #270.
Updated Changes file to include TaskList.
Setting default value for CustomRange mode to demonstrate syntax.
PlaybackRange mode is read only as well.

I changed it's order in the list because I think it's more natural next to FullRange
Using metadata to store the actual CustomRange value.

This allowed PlaybackRange to set the plug value without losing the alternate value.
Merge pull request #1035 from johnhaddon/shaderTypes

Better management of different shader types
Merge pull request #1004 from johnhaddon/buttonSize

Button size
InteractiveRender updates all attributes
Merge branch 'davidsminor-interactiveRenderAttributes'