[player] Reshuffle on end of playlist and repeat mode is "repeat all"
Decouple the playing/streaming item from the queue. Move all queue related functions to seperate file queue.h/c. Introduce internal item "head" to make iterating over the play-queue and shuffle-queue easier.