NowPlaying*Fragment: onPlaylistChanged, only update when we're streaming.

For many workflows, the update will needlessly occur twice due to track change
and playlist change occuring both occuring on a typical track change. Since
commit 55029f96 we no longer need to worry about the playlist change causing
our data to be out of sync, except when the metadata might change without track
change, such as when streaming.
NowPlayingFragment: Refactor track seek bar, allow hiding when unused.

This is a refactor of the track progress bar which makes updating more
granular and allows it to hide when it's unused, such as when streaming
or when stopped.
NowPlayingFragment: Cleanup audioNameText updating.
NowPlayingFragment: Remove superfluous updateStatus after updateTrackInfo().
NowPlayingFragment: Remove status null check at updateStatus() start.
NowPlayingFragment: Rename volume seek bar field, move method to order.

Fix 4b96c4c where I didn't realize that many of the methods were in order,
also rename progressBarVolume to seekBarVolume, as it is a seek bar object.
NowPlaying*Fragment: Do not allow track info update prior to connection.

Do not allow track information update prior to connection, initiate a track
information update per the connectionStateChanged listener.
Music.java: Remove superfluous method, use isStream().
JMPDComm: Perform format, fix many text-only warnings.
JMPDComm: When possible, give collections an initial capacity.

Fill in as many initial capacities as is possible. Fixes many
performance warnings.
JMPDComm: Fix a few miscellaneous performance warnings.
Music.java: Refactor timeToString().
NowPlayingSmallFragment: Fix the no coverart after valid coverart.
NowPlayingFragment: Remove timeToString, use the method from Music.java.
Music.java: Remove dead toString() code, document it.
PlaylistFile: Cleanup PlaylistFile, fix warnings.

Cleanup PlaylistFile, fix warnings, including moving a regexp to a final
static space to be compiled prior to running.
NowPlayingFragment: Seed MPDStatus on connection or resume.

Prior to this, the status was kept up to date due to how many times
updateTrackInfoAsync() would get hit in the beginning. After this behaviour
was cleaned up the status would regularly be out of sync, this should
fix that.

The only two places the MPDStatus should need to be updated, outside
of the idle status monitor is connectionStateChanged() or onResume().
MPDStatusMonitor: When updating, the status is changing, not the database.

According to MPD Protocol Reference, Chapter 3, the server will emit an update
idle response to an update command. This does not mean the database has
actually changed, only that the server is checking for updates, making this
an actual status change.
MPDStatusMonitor: Let the user know if the database actually changed.

Let the user know if the database actually changed. This will only happen after
the first parameter of libraryStateChange has changed to true to false.
StringUtils: Remove unused and trivial method.