Added optional continuous update to string PlugValueWidgets.

This transfers the text from the ui to the plug on every keypress.
Changed GraphGadget drag selection to select only fully enclosed nodes.
Added a todo.

I'd like the Style classes to be extended with more methods with specific semantics, rather than with low-level drawing calls.
Added some cursors for resizing horizontally, vertically and diagonally.
Extended Style class to support rendering of backdrops.

This includes new methods for rendering wrapped text, backdrop backgrounds and horizontal rules, as well as control over font sizes.
Added backdrops for the NodeGraph.

Backdrops are represented in the script using the new Backdrop node type - it is necessary to store them as a node so that they can persist in the script across save and load. The vast majority of the implementation however is in the BackdropNodeGadget, which implements the drawing in the NodeGraph. Backdrops have a title which is rendered large to be visible when zoomed out, and a description in smaller font which is word wrapped automatically as the backdrop is resized. Selecting/deselecting a backdrop by clicking in the title area will select/deselect all the framed nodes, so that subsequent drags will also move the contents.

To ensure that backdrops are drawn behind everything else, GraphGadget::doRender() has a bit of a hack to enforce ordering - I think we can do better here but I'd like to revisit that later when we have a few more use cases for some sort of layering API in Gadget.

Different colours for backdrops remain as a todo - I'd like to address that in a separate pull request where all nodes may be displayed with custom colours, not just backdrops.

Fixes #153.