MPDPlaylist: Add a workaround for broken partial playlist updating.

An automated crash report has been received detailing a RuntimeException which
was planted in the removeByRange() method in the MusicList class to check
for sanity. It checks to make sure the length of the playlist after a partial
playlist update are less than the status playlist length. Then the exception
would be thrown, their application would fail and we would have a sad user :(.

With this patch, a full playlist update will occur if the playlist length,
after playlist changes, is more than the status playlist length says it is.

There is a tiny possibility for a race between the status update and the
playlist update, but it is more likely that this is a implementation race.
ArrayAdapter: If incoming list is empty, it need not be an ArrayList.

A automated crash report has been receieved detailing a RuntimeException which
was planted in the constructors for the ArrayAdapter class which checked for
the Items list to make sure it has an ArrayList backing store, which, we have
not changed, except for in the case that we have an empty list which we then
use Collections.emptyList(); so now we will check to see if it is empty
prior to the instanceof check.