Fixed TextGadget vertical bound.

It is now always big enough to fully enclose any character in height, rather than changing height when taller characters are added or removed. This fixes StandardNodeGadget heights which were dependent on the node name.
Updated GraphGadget for new layout code.

Removed inappropriate call to positionNode() in GraphGadget. There's a significant overhead to this now, and it's also unnecessary, because the creator of the node is responsible for calling one of the layout functions at the appropriate time. Removed \todo which suggested that GraphGadget should automatically figure out the right thing to do get new nodes laid out properly - I now think that this requires external knowledge unavailable to the GraphGadget (e.g. is this an import operation, or a paste, or a new node, or a whole load of scripted operations).
Added failing NodeGraph test case.

The problem is that GraphGadget makes a position plug immediately upon a new node being added, in addNodeGadget(). But when a node with an existing position plug is being pasted, it will add a second position plug immediately after, resulting it being named and becoming a useless duplicate. Perhaps ideally we shouldn't add the plug at all in addNodeGadget(), but we currently rely on it existing in offsetNodes(), so it's not totally clear what the best approach is.