Added fallbackPosition argument to GraphLayout::positionNode().

This simplifies the logic a little for people using it, but mostly this is in preparation for modifying it to work for many nodes at once, in which case it would have been very inconvenient for the client code to do the fallback positioning themselves.
Added support for nested plugs in StandardGraphLayout::connectNode().

Practically speaking, this means that newly created shader nodes can now be automatically connected to the nodes which were selected at the time of creation.
Added Widget.mousePosition() method.

This returns the current position of the mouse pointer, optionally transformed into the local space of a particular Widget.
Added auto-connecting and auto-positioning for pasted nodes.

This makes use of two new methods on GraphLayout - connectNodes() and positionNodes().
Merge pull request #240 from johnhaddon/pastePositioning

Paste positioning