API change: select/deselect events emit both button el and slug

API add: set. Redefine onclick in terms of set.

Make select, deselect, change API-private

Use component/event binding instead of raw onclick events

Add to component.json keywords