First version of the clamp node
Setting defaults in plug constructors
Using the recommended method of comparing the ancestor of the input to the plug
Updating to use iterators, updating testing logic to be more clear
switching to use isAncestorOf as suggested, in order to avoid the ancestor call which apparently can trigger an evaluation through python
adding a doxygen comment and fixing some tabbing issues
Updating the code for compatibility with Cortex pull request 160.

We should make sure the pull request in Cortex go first.
Added fixes for OSX public build.

Helped boost find the libraries it has just built - otherwise boost_wave fails to link because it can't find boost_system. Added notes about a modification to the Alembic CMake setup necessary to get the build to work - the Alembic tests don't compile on OS X so we must skip them. I tried setting the variable on the CMake command line but it had no effect - will get a patched version of Alembic into the dependencies tarball instead.
Fixed clipping problem with BusyWidget.

It was drawing a busy indicator that was twice as big as its minimum size, meaning it could get clipped quite badly.
Removed overhead of invisible BusyWidgets.

They were still be triggering redraw requests even while not visible - now they don't.
Resolved ambiguities in Widget auto-parenting keyword arguments.

We were taking all unused keyword arguments in the Widget constructors and passing them to the addChild() method used during auto-parenting. This allowed this sort of code, where expand is actually an argument to the ListContainer.addChild() method :

```
with GafferUI.ListContainer() :
	GafferUI.Label( expand = True )
```

The problem with this was that there was no protection against clashes between the names that addChild() wanted and the names that the Widget constructors themselves might define. Such a clash has already occurred, with ListContainer.addChild() accepting horizontalAlignment and verticalAlignment to define child layout and Label.__init__() accepting arguments with the same names to define text layout.

This patch defines a new means of passing auto-layout arguments where name clashes are less likely :

```
with GafferUI.ListContainer() :
	GafferUI.Label( parentArgs = { "expand" : True } )
```

If this seems like a good approach to everyone, then I'll make an issue to deprecate the old behaviour and start moving everything in that direction. The new approach is a bit more wordy, but it doesn't have any gotchas that I can see, whereas the original approach seems elegant until you get a clash, but then you're forced to not use auto-layout at all.

If anyone thinks that there could be a more intuitive name than parentArgs then I'd love to hear suggestions - perhaps "layout" or "autoLayout" or "addChildArgs"?
Made Button accept Return and Enter keypresses for triggering clicks.

I was finding the fact that they only accepted the space bar quite unintuitive.
Made ConfirmationDialogue.waitForConfirmation() focus the default button.

This makes things like the unsaved changes dialogue much more useable. There's a good case for having public focus methods on the Widget class to make this sort of thing possible without cheeky Qt API access, but I'm still undecided on the best semantics. For most things we have set/get, but focus is a bit different in that setting focus on one Widget will take it away from another. Currently we have set/get in MultiLineTextWidget and grab in TextWidget - once we've settled on the right naming we can put something on the Widget base class instead and tidy this stuff up.
Added a UnionFilter node to GafferScene.

Also moved the bindings for all filters into a separate file to further improve GafferSceneModule.cpp compilation times.

Fixes #594.
Added set/getTextSelectable() method to GafferUI.Label.

By default the text is not selectable, as before.
Added Dialogue set/getModal() methods.

These allow the management of a modal event loop of the same sort used by the existing waitForButton() method. This new lower level functionality can be used by dialogues which wish to stay modal until some event other than a button press has occurred.
Added new icons for use in OpDialogue.
Added background operation mode to OpDialogue.

This executes the op on a background thread, allowing the UI to display an animated busy signal as the op does its thing. Also added new postExecuteBehaviours to allow the display of the result and a success/failure icon, before allowing the user to optionally run the op again.
Updated the BrowserEditor and op app to execute ops in a background thread.
Added a todo.