Added Style::characterBound() method.

This returns a bounding box guaranteed to cover the largest character in the font. It is useful for correctly positioning the text baseline among other things.
Added scaling to the Backdrop node contents.

Scaling is controlled via a new "scale" plug on the Backdrop node, and is used to scale the whole text contents of the backdrop, rewrapping text as necessary.
Improved Backdrop selection and resizing.

The resize handles are now a bit larger (5 pixels) and easier to hit. The top resize handle scales down as the the user zooms out, to prevent it from stopping the user from picking the title area to select the node. Also fixed a bug which meant there was no immediate redraw when an empty Backdrop was selected.
Fixed Backdrop cut+paste bug.

More specifically, backdrops were selecting their children (framed nodes) whenever they themselves were selected, regardless of the source of that selection event. When a backdrop was being pasted, it was being pasted over the top of the original, getting selected, selecting all it's children (including the ones from the original, because they were contained in the bounds) and then getting moved to the new location, along with the bogus selected nodes.

This fix moves the responsibility for propagating selection to the backdrop children to the GraphGadget, meaning the propagation only occurs on buttonPress events, and not at any other time. This does increase the coupling between the GraphGadget and Backdrop but is much better than not fixing it. You could also argue that there was implied coupling before, because the Backdrop code was assuming it knew what the GraphGadget would be doing, even if it wasn't using the GraphGadget API.

Fixes #539.
Merge pull request #546 from johnhaddon/backdropImprovements

Backdrop improvements