BrowseFragment: Fix regression from bfe8cc0.

We received a crash report of someone trying to go to an artist on a
PlaylistFile. This doesn't work as it's not an instance that has an artist, so,
only accept instances that have artist entries.
New build tools
Bump buildtools
Add play services voice search
Fix travis
Update korean translations
Music: Use smaller, more exact, constructors, fix NPE in getFullPath().

We received a crash report detailing a crash that occured due to a null
mFullPath field. This really shouldn't happen, but since it apparently does,
cover it with an if block like the rest of this class. This /could/ be fixed
with the constructor fix (detailed below); cover it up until possibly post-
release testing.

While looking into this bug, I also noticed the children classes for the Music
class are inexact constructors. For instance, we would construct the children
with getTitle() which is /not/ a getter. Use a better suited constructor and
change permissions so it won't happen again.
StreamHandler: Setup AudioAttributes for MediaPlayer.
MPD: Don't send a command queue if nothing was added in add().

We received a automated crash response due to an attempt to send an empty
command queue. This was due to a user doing an add() with very specific
parameters which would negate every conditional on the way through and
never added to the command queue. For this case, I've added a conditional
which should be negated if there is an empty command queue at the end.
Updated some German strings and compared with English strings.xml
changed tab to 4 blanks
corrected some hyphen
NowPlayingFragment: Only set rating visibility on init, connection and config.

Setting the rating visibility was happening per track change, now we only
change it on initialization, connection and if the config option changes.
UpdateTrackInfo: Only attempt rating retrival if the config option is set.
dmix: Final cleanup to try to fix null responses.
MPDStatusMonitor: Don't wait() when connected.

In certain cases, an idle subsystem update event can be skipped due to a wait()
used to keep from looping (and subsequently eating too much CPU) too often
during disconnection. Now, we only only wait() when disconnected.

This is a stop gap fix until this class is rewritten.
MPDApplication: Suppress exception if a disconnection timer is cancelled.

We received an automated crash report that an exception caused a crash due to a
disconnection timer cancellation. This is not a problem as this is part of the
normal course of operations. Log and suppress this exception.
dmix: Code style.
use MPD's own database update time when checking for album cache

should fix cache update problems if the server's and the android client's
times are not synchronized, see #645
make backup of value before setting it