Added undo support to Box setNodeMetadata() and setPlugMetadata() methods.

Also prevented signalling when one of the methods is called with a value equal to the current value.
Added undo support to BoxEditor.