Replace AJAX polling of mpd status with a websocket

The API now sends the status to the browser via a websocket. Currently,
the API polls the MPD daemon, this will be replaced by using MPD's
'idle' command.
Replace polling altogether!

Use mpd's idle (watch) command to listen for changes in mpd's state,
and broadcast the status to all websockets when a change occurs.

Breaks the progress bar for now, because it's not getting frequent
timing updates.
reuse mpd client connections