Added callback to main so we can detect when sound is done playing, also implemented a list of "sound listeners" that will be informed when a sound is done playing (and which note it was). This information can be used to play a series of notes in a row.