[#3123] 1. Track Events dispatch trackeventselected/deselected only after the _selected array in main.js is updated
2. Selected draggables don't duplicate, stopping that nasty crash when dragging an event
3. Track.deselectEvents now only sets the select state to false if an event is selected, reducing useless calls to all trackevents