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).
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.
InteractiveRender updates all attributes
Merge branch 'davidsminor-interactiveRenderAttributes'
Merge pull request #1032 from andrewkaufman/dispatcherFramesUI

FrameRange UI displays the value that will actually be dispatched.
Optimised Expression::hash().

By storing the context names rather than querying them, we avoid having to enter python in Expression::hash(). In a test case generating a scene with 100 CustomAttributes nodes each with a python expression connected, this gives a 23% reduction in initial traversal time, and a 65% reduction in traversal time once the scene is in the ValuePlug cache.

Fixes #1034.
Removed unnecessary InternedString construction from Expression node.

This knocks 6% off the runtime when traversing a cached scene generated by 100 CustomAttributes nodes each with expressions.
Added Group::nextInPlug() method.

Fixes #1036.
Merge pull request #1041 from johnhaddon/expressionHash

Expression optimisations
Merge pull request #1042 from johnhaddon/nextInPlug

Added Group::nextInPlug() method.
Bumped version to 0.2.1.0 and updated Changes file.
Added Gaffer.NodeAlgo.applyUserDefaults()

Nodes created via the NodeMenu apply default values to their plugs, using the "userDefault" key in the Metadata.

Fixes #1038.