dmix: Update Android Build Tools to 21.1.2.
MPDConnection: Require each command response to end with OK or ACK.

With MPD reference implementation 0.19.x, if an error is made when
communicating with the server, it will disconnect and this could easily lead
to errors which are hard to debug.

From this commit, require that all command responses end with OK or ACK, as per
the protocol.
Tools: Add getRanges().

Add a method to parse a list for a delimiter, and give a list of ranges for
lines between delimiters in the same format as List.subList().
MPDOutput: Use getRanges() with buildOutputsFromList().
MusicBuilder: Use getRanges() with buildMusicFromList().
PhoneStateReceiver: Improve connection handling when not in memory.

During a refactoring earlier this year, it was not taken into account whether
MPDroid was in memory and connected. This led to not pausing due to MPDStatus
outputting a unknown status. This fixes that by moving some of the logic into
MPDControl, due mostly to the fact that we don't have a good blocking
connection lock, and MPDControl has a hacky one.

This also adds the necessary race preventers required since the connection may
take some time (hopefully not though!).