Clean up Client.GetFiles()

* An empty result is not an error.
* Fixed URL to the protocol spec for CommandLists.
Added mpd's "idle" & "noidle" commands.

* Introduced Client.Idle()
* Introduced Client.NoIdle()
* Introduced Client.readList()
* Simplified Client.GetFiles(). It's is using Client.readList() now.
* Added related tests.
Added Watcher to use mpd's "idle" command.
go fmt
Added an exmaple.
Fixed race condition in Watcher.Close()

* Added done channel
* Use buffered channels for all other channels
* Removed type Subsystem
Fixed Copyright headers.
merge support for idle/noidle
fix Wacher.Close race