Play Music

kinda fun
addresses #29 
If we're following standard design patterns, I believe that would be called a `MusicPlayerFactory`, then you could call `new MusicPlayerFactory().createMusicPlayer(...)` to instantiate a `MusicPlayer`, and only the `MusicPlayerFactory` would have to know whether it was an `SM_MusicPlayer` or some other kind of music player.

That would also allow us to pass configuration options via the MusicPlayerFactory if we needed to do that in the future.