Undo Improvements

This pull request fixes the virtual-slider-dragging-makes-multiple-undo-entries problem discussed in #400 and also adds ScriptNode::undoAddedSignal() to address #103. I went with all the suggestions in the discussion thread, implementing things properly on the API side, just using them from the UI side, and providing a mechanism to prevent merging of undo events and using that to prevent consecutive virtual-slidings from being smooshed into one.

The issues this references should be fully addressed as far as I know, and I'm now moving on to getting the colour picker working properly in a similar vein. That will mean adding a reason argument to the Slider.positionChangedSignal() - is everyone OK with that?

It's probably best to wait to merge this till I have the colour picker commits in there too, but I thought it was worth publishing my changes now the original issues are addressed in case there's any feedback...