Use global constant for history count
Clip contents of song list so previous song doesn't move beyond list boundary
Make sure a new matadata aren't the same as the last one

Sometimes race condition happens and server gives back metadata for the
last song (almost finished) instead of giving info for the new one.
This commit fixes this by checking song id