Smarter polling

We don't regularly try to get the track & anymore but try to be smart and
detect track changes. If the track changes, we try to get the track information
and the artwork. This reduces the average CPU usage a lot (quick tests have
shown a reduction by at least 50%).

This includes also an automatic retry if getting the track or artwork failed.
Depend on the correct branch, current_track_id -> track_id