Better Button event handling, added Slider

Buttons/Sliders now send ButtonEvents, which contain 1) the name of the
source, and 2) its current state (pressed, down, released)