Channels

Manage the Collection refresh from MPD in a background goroutine.

- [x] Pass reference over channel, not entire collection
- [x] Refactor into "player" package (MpdPlayer etc, that owns the channels)
- [x] Figure out how to inject the Player into the http handlers then do player.GetCollection() etc inside handler
- [x] `ab -c 10 -n 10000  http://localhost:8080/categories/`
       - issue is that we're running out of sockets by hitting the endpoint so many times.
- [ ] benchmark on raspberry pi