Shuffler: fix Repeat-OFF mode when Shuffle is ON (bgo#724515)

Shuffler should only retry calling GetRandomTrack() when
the previous call returned null and repeat is ON, regardless
of the shuffle mode.
Shuffler: fix shuffle for less than 3 tracks if repeat ON (bgo#671221)

bgo#671221 was fixed in two parts in master branch:
- A commit for the case of having 2 tracks in the source.
- A commit for the case of having 1 track in the source.
The second and last commit (3badbb864d14c4902f846fbc3933838de54c7d43)
has a bit less risk of regressions, and also fixes the case for 2 tracks,
even though it leaves a suboptimal random mode, so let's backport it to
the stable branch.