StreamHandler: Don't extend Service, don't implement ServiceConnection.

Rationale:
* This is necessary, as Android expects the MediaPlayer to be attached to a
notification in order to take advantage of startForeground() to prevent
unexpected Service shutdown.

* This is also to allows access to the same AudioManager object; Android's
AudioManager crashed often when the services would take audio focus from each
other.

Implementation:
There are several things that had to happen at the same time to make this
patch work successfully which is why this patch is the size it is. Several
rewrites were attempted to make this happen gradually while keeping things
stable and working, after the sixth attempt this patch was created.

* This patch makes the service spawn it's own process. This significantly
reduces memory requirements of the service itself, allows more forgiving
instability, takes the service completely off the UI thread, and allows
MPDroid process killing without affecting the service (or visa versa).

* This patch adds helper functions to MPDApplication for start/stop and
server querying.

* This patch adds a Message handler class inside the MPDroid service to receive
and act on messages. Also adds debugging functions to help decode 'what'
messages.

* The MPDroidService now has a minimal startup. On startup very little will
load and is controlled by the new ServiceBinder class, currently implemented
in MPDApplication and started by the main activity to prevent a ServiceBinder
instance in the Service process. Service handlers will start dynamically as
necessary. One rationale for this change is the service must start at MPDroid
startup, minimally, to query server status. This is due to the Android
framework not having a way (prior to API 21) to know if a Service is even
running (even one owned by the main process), so deep Binder integration is
necessary for a concrete server implementation.

* The MPDroidService will also shut itself down when it's not being used.

* The MPDroid service does not use the Application instance now, instead it
uses the service instance, and only when it's absolutely necessary.

* This patch slightly changes Notification behaviour, it should not start on
Notification activation, it should only be active during play or the wind
down period.

* This patch adds stream stop/start to the ActionFire activity.

* In this patch, StreamHandler no longer extends Service, removes all binding
code, and relies on the main service for functionality.
AlbumCoverHandler: Implement album cover downloader.
AlbumCoverHandler: Don't recycle, just nullify and let GC do it's job.

I'm not sure exactly why but there are some times that Android can get out of
state and will try to parcel the albumCover after recycling. With Android 3.x+
it's really not worth the risk of crashing the service over it, so null it
and let GC do it's job.
ConnectionInfo: Add a class to track the current connection configuration.

This replaces MPDConnectionInfo from MPDAsyncHelper and adds a callback
triggered by connection configuration change. This object also stores
whether where the connection changed since last connection configuration.

This should improve or fix #552.
service: Setup service for ConnectionInfo use.

Since the service is in a separate process, when the connection information is
updated it won't be received as the AsyncHelper and Monitor are running in a
separate process, so we need to send this information over our service binder.
MPDAsyncHelper: Don't allow adding listener multiple times.
AndroidManifest: Format and warning cleanup.
service: Add a debug boolean for the service module.
MPDroidService: If MPDroid task is swipped to remove, restart service.

This works around the default behaviour that if MPDroid is killed, the service
should be. Since, in this case, the service is a completely separate entity,
restart and get back to where it was on main process task swipe kill.
MPDroidService: More audio focus improvements.
DO_NOT_COMMIT

DO_NOT_COMMIT
NowPlayingSmallFragment: Fix cover show failure.

From time to time NowPlayingSmallFragment cover will fail to show while
NowPlayingFragment never fails. The only difference between the cover download
is NowPlayingFragment uses the priority boolean (what does that even do?) so,
use it.
MPDConnection: Reformat
MPDConnection: Make MPDCommandResult a nested class and cleanup warnings.
MPDConnection: Move classes used by MpdCallable exclusively to MpdCallable.
MPD.java: Move listallinfo/getHost/getPort into JMPDComm.
MPDConnection: Many warning fixes, tighten direct access.

This includes removing direct public access to anything in connection, anything
in here should be accessed elsewhere in JMPDComm.
MPDConnection: Refactor the isConnected() logic.

Before the isConnected() logic was slightly erratic, this is an attempt to make
it a little less erratic.
MPDConnection: Refactor sendCommandQueue.
MPDConnection: Use a statically compiled pattern for line parsing.