RemoteControlClientHandler: onCoverUpdate() check for a current track.

It's unlucky, but it can happen that prior to albumart decoding completion, the
server playlist queue can be cleared and there will be no current track. This
commit checks the current track for non-nullity prior to updating the remote
control client object with a cover bitmap.
MPDPlaylist: Correct null check in removeAlbumById().
NowPlayingFragment: Don't send SimpleLibraryActivity intent without an extra.
NowPlayingFragment: Check full path for null prior to extracting extension.
ArrayIndexerAdapter: Check for null prior to checking sorted for empty state.
dmix: Code style.
dmix: Update gradle wrapper.
CommandQueue: Documentation and permissions updates.
CommandQueue: Refactor toString to only output MPDCommand if command queue size is 1.
AbstractMusic: Add static key names.
AbstractMusic: Refactor method names for clarity.

getAlbum() -> getAlbumName()
getAlbumAsAlbum() -> getAlbum()

getAlbumArtist() -> getAlbumArtistName()
getAlbumArtistAsArtist() -> getAlbumArtist()

getArtist() -> getArtistName()
getArtistAsArtist() -> getArtist()

getComposer() -> getComposerName()

getGenre() -> getGenreName()

mAlbum -> mAlbumName

mAlbumArtist -> mAlbumArtistName

mArtist -> mArtistName

mComposer -> mComposerName

mGenre -> mGenreName
Android/Music: Implement MediaMetadata populator.

Adds a method to populate metadata into a given MediaMetadata parameter.
AlbumCoverDownloadListener: Fix warnings.

This also removes a RuntimeException catch, if this breaks things, sorry.
AboutActivity: Fix warnings.
MPDOutput: Move the outputs list builder to MPDOutput, ala music list builder.
Album: Use a builder pattern for album construction, make immutable.

Album, uses many different types of construction and, it's getting harder to
construct, so a builder is natural for construction.

This patch:

* Removes setHasAlbumArtist(), this was required to make all fields immutable,
and work with the builder pattern.

* Moves the getAlbumDetails() method from the MPD classes to addAlbumDetails(),
this will be less confusing as it's a superset of addAlbumPaths().

* This removes the findYear parameter from addAlbumDetails(). The information
was already being retrieved, just not placed in the album object.
Music: Javadoc additions and other clarifications.
MPD: Remove unused trackCountNeeded parameter.
Extra: Use a string literal to each item for intent extra use.

This also abstracts out remaining Items to keep the new string literals as
Android only.
AbstractMusic: Replace pattern/match with simple character search.