StreamHandler: Upon buffer interruption, reset mPreparingStream.

This should fix the StreamHandler being out of sync with the main process if
the buffer is interrupted.
StreamHandler: Don't call MediaPlayer.stop/reset during release.

stop() can be called after a delay and can interrupt other MediaPlayer users.
reset() is redundant.
MPDroidService: More audio focus improvements.

This fixes quite a few audio focus bugs, including abandoning audio focus on
stream pause.
MPDroidService: Clean up handler status setting.

This commit adds a method to set handler status, this should make the setting
less error prone.
MPDroidService: Change a couple of messages to direct method calls.
NetworkActivityHelper: Temporarily disable.

This one made it in a bit too early. It appeared to be working at the time,
but this concept had not matured. Disable it for now, it will return later.
NotificationHandler: Call startForeground() once, set a flag.

On initial glance, this might look like a microoptimization, but each
startForeground() call takes significant time to process. Unlike most
any other call which takes no time on the same device. Since
NotificationHandler starts and stops foreground, set a flag and
only call startForeground when necessary.
service: Revamp the album cover listeners.

Notification always processed (scaling and decoded) it's own image using
RemoteViews.setImageViewUri() because RemoteViews.setImageViewBitmap() would
always crash due to recycling. This resulted in a noticable on UI thread lag.

This was caused by an errant shallow copy being sent to RemoteControlClient and
Notification, when one handler was done with the copy it would recycle for both
of them.