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.
AbstractMusic: Add response and tag type stored values.

This is a change to a947dc4 which came too late to squash.
MPDStatus: Add duration support (MPD protocol 0.20+).
PlaylistFile: Implement parcelable.
Tools: Refactor parseResponse() to modify in place and allow multiple arguments.

Refactor parseResponse to modify in place using a ListIterator, this will allow
the list to be modified in place and is actually a pretty large performance
gain in my non-scientific benchmarking.

This commit also renames the type parameter to keys and changes it to an arity
parameter to allow multiple key matches.
Tools: Remove parseResponse() sorting.

Remove sorting a parsed response after parsing, this should be done separately.