Fix slow playtrackbyuri

I found the numerous `tracklist.next()` calls when selecting a track to play from a playlist/search was choking my raspberry pi and causing it to stutter. It gets particularly bad when the playlist/search has many entries. I've also tried to minimise the amount of data sent back and forth by adding by URI instead of tracks where possible (i.e. everywhere except search results) and using `tracklist.filter()`.

This was my first stab at something non-trivial in JS so please feel free to cherry pick bits if you don't like anything. Hopefully calling `getCurrentPlaylist()` at the end means I didn't break anything, maybe it's not strictly necessary?