Fix responsiveness of volume seekbars in player list

Main issue was that Android stops tracking touch when notifyDatasetChanged of
the adapter was called. When a seekbar starts tracking touch, it onforms the
activity, which then stops calling notifyDatasetChanged, until the seekbar stops
stops tracking touch. The player states are still updated and displayed on the
update from the service. This will be briefly after, as we get the response from
the last volume change. Since we do not propagate updates from the service, we
manually update the views of the volume we are tracking.

Also some general optimization of the player views; use a view holder and use
a handler to post the service updates to the UI thread.