Dim and inactivate next/prev buttons for remote songs.
Handle songs from streaming services with identical IDs.

A streaming service might return a stream with an unchanging song ID, and
then update the title, artist, artwork URL, and other information.

Because the ID does not change Squeezer considered these to be identical
songs and didn't update the display in NowPlayingFragment when the track
changed.

Fix this by extending the equality test to consider additional fields, and
add tests for this.

While in this code remove unecessary setters, refactor member names, and
add annotations indicating whether or not values can be null.