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.
AndroidManifest: WRITE_EXTERNAL_STORAGE permission not required for API 19+.
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.