ConnectionInfo: Add an initializing constructor.

Add an initializing method, this is necessary for blank configuration.
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.
MPDConnection*: Make the signatures more consistent.
MPD: Remove dedicated status connection, take the main connection pool to two.

The rationale behind this patch:

* I have no proof we /ever/ run more than one threaded socket.

* Status socket is /rarely/ used. We don't force status unless necessary.

* With two separate processes, we're hitting the default MPD server
max_connections limit.
MPDConnection: Replace the executor service with a ThreadedPoolExecutor.

Replace the executor service with a ThreadedPoolExecutor, it will dynamically
allocate the threads as necessary, rather than a FixedPoolExecutor. It will
also allow us to debug how many threads have been used at one time over the
lifetime of the executor, so we can scale back up if someone lets us know
that we're using more than the current maximum threads.