Fix PlaylistInfo to request only specified range from MPD

Previously, when a range was specified, we fetched the full playlist
from MPD and sliced it locally. This can cause MPD output buffer errors
with large playlists, and had unnecessary network overhead.

Note: previous PlaylistInfo tests were lacking the necessary setup of
putting some items on the current playlist.
You can also initialize `start` to 0 and `end` to s.currentPlaylist.Len(). Then, you can remove the extra for loop inside "if len(rng) == 2", and takes care of both cases with one for loop. The for loop can also take care of "if len(rng) == 1" case, if you set `start` to i and `end` to i+1.