Add timing thread implementation
This MR adds a dedicated timing thread for playing ticks, to ensure that they are played steadily without interference from event handling, etc., to fix #8 (closed). Additionally, the thread accepts messages on a channel to change BPM and beats per bar while running, fixing #5 (closed).
The one other user-visible difference should be that the "TAP" button no longer makes sound when clicked. I made the executive decision to remove that sound, since it would complicate the implementation to keep it now, and most applications that I've seen are silent when clicking their tap tempo buttons. It would also likely be confusing to have two sources of click sounds when setting tap tempo while the metronome is running.
Edited by Clara Hobbs