Modify metronome timing function

Changed implementation of metronome to use ```setInterval()``` instead of ```setTimeout()``` for more accurate timing. With ```setTimeout()```, the metronome sometimes appeared to "off" by a noticeable amount and wasn't ticking exactly when it should. Although ```setInterval()``` places a higher performance burden on the application, the tradeoff for more accurate "ticks" seems worth it since this is a time-critical function in the app and really can't be fudged very much, which can easily happen with ```setTimeout()```.