Added connection context manager.

After this change, each command to MPD results in a connect() and
disconnect() call. This ensures that server connections never time out.
Use select() in status thread.

The ``StatusThread`` now uses ``select.select()`` calls with a timeout
to check whether the MPD ``idle`` command has new information already or
not. This prevents a blocked client if something goes wrong.