Merge tag '1_07_rc2' into develop

1_07_rc2
SettingsActivity: Don't update connection settings if disconnected.
MPD: Fix Album Artist setting regression from 51cecb7.

Second attempt to fix this one.
MPD: Generalize parseResponse, add it to Tools.

This method caused an automated crash report, cleaned it up to use
Tools.splitResponse() which should fix the source of the crash,
then generalized it as it will be useful at a later time.
MPD: Don't suppress/log exception in the library for no reason.
StreamsFragment: Check for the listplaylist command availablility before run.

This is like a96a211, but for StreamsFragment as it often asks for it in
FSFragment.

Like a96a211, this only works on the standard MPD implementation for 0.19.2 and
greater.
MPDConnection: Throw IOException if no response and no error.

We've received a couple of automated crash reports which no exception was thrown
and no result was received. This is probably a bug of some sort. Having the user
crash isn't going to help, throw an IOException for now, until the bug is either
found or the code is replaced.
MPDConnection: Add yet more debug information to the no exception error.
MusicList: Refactor.

This refactoring fixes quite a few issues, some causing internal inconsistency
which has been in this class since existance.

* When the inner list is manipulated, do not remove the old music entry from
the inner list. This removal will occur at a later iteration of the changeset,
if it needs be. This caused a bug which would cause an exception when adding
or changing in the middle of the inner list.

* Remove unused methods and constructors. There were a lot of unused methods
that would no longer have any use and would add to the maintenance of this
class. Since this class is for internal use only, we don't need to worry about
feature methods.

* Move the list iteration to manipulate(), it's better suited for the task.

* Cleanups everywhere, including the workaround from f232f5f has been
refactored.

* Replace map with list. Our songID map has /never/ worked correctly, due to
the way it was constructed. Replace it with an easier to maintain list.

* Use sublist() to clear ranges.

* Implement Iterable.
Artistfragment: Save and restore genre state
Merge pull request #648 from jpeitz/fix_artistsfragment

Artistsfragment: Save and restore genre state
MPD: Fix album artist response key case.
MPD: Refix album artist stuff.

This commit (finally) removes the setAlbumArtist hack, if a album artist is to
be set in the track there has to be new construction due to the
equality/hashcode general contract. This fixes the broken album listing.
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.