Reaching end of playlist works properly

Reaching end of playlist now stops playing and resets the currently
playing song.
Fixed concurrency issues

Fixed: Playing multiple songs nearly simultaneously causes playlist to
autoadvance quickly without stopping.

Fixed: reading currently_playing wasn't being read in a concurrently
safe context.