Add logs to identify blocking requests.
- Use a dedicated connection for status
- Do not refresh the status at every MPD.getStatus() call, update it when triggered by the IDLE connection.
Use thread local sockets for everything except IDLE and STATUS.
Do not shutdown executor for now
Fix null pointer exception in settings
Use idle connection to get the mpd version
Fix elapsed time for streams.
Fix URL encoding for Http local cover fetcher.
Use only the MPD idle connection to check if MPD is connected.
Consider a connection as disconnected only when it has been cancelled
Otherwise try it and the connection will be cancelled in case of error.
Fix Connections
Logs the tread names
Allows 5 threads for commands
Set the socket timeout to 5"
Logs the connect()
Fix password
Bypass thread pool queue if the thread already comes from the pool
to avoid deadlocks and needed for the password command.
Make socket streams thread local
Try to better tune the socket timeout for each connection.
Give more time for the status connection before closing the socket seems to improve reactivity.
Regroup checkMonitorNeeded() and checkConnectionNeeded() in checkConnectionNeeded().
Allow to use the checkConnectionNeeded() scheduler also for the checkMonitorNeeded() operation.
That way we do not stop/start/stop ... the connection monitor and this avoid some views (small nowplaying screen) to blink.
Check that connections are not null in the isConnected() method.
Avoid null pointer exception if a getStatus() requests happens before connect().
Increase socket timeout for commands. Avoids some non retryable commands (next) to fail when the network is slow.
Merge branch 'master' into single-thread-connection

Conflicts:
	JMPDComm/src/org/a0z/mpd/MPD.java
	JMPDComm/src/org/a0z/mpd/MPDConnection.java
	MPDroid/src/com/namelessdev/mpdroid/MPDApplication.java