Ensure that all player state is saved when it changes.

Fixes a bug where CurrentPlaylistActivity was not highlighting the
correct song because the current song was not being updated when
the player state changed.
Re-order the location of the update*() methods to keep them together.

Add JavaDoc.