Added ButtonEvent.button field.

Previously we had only a buttons field, which held the state of the buttons at the time the event was generated. This meant that we had no way of knowing which button had actually triggered the event, which in particular meant that it was impossible to know what button was released in a buttonReleaseSignal() - because the buttons field now shows no buttons. The new button field simply holds the button that triggered the event.
Added ColorSwatchPlugValueWidget.

This displays a colour plug purely as a colour swatch, without the numeric fields. It supports the dragging of the colour from the swatch to other plugs and the script editor. The ColorPlugValueWidget now uses it for its swatch, so that too supports dragging now.