Update dependencies

- Use python-mpd2 master branch for tag support
- Add youtube-dl to dependencies
- Remove check for mod tag commands
- Add server version check for addtagid
Return proper HTTP codes on mpd errors

- Return 503 when mpd server is not available
- Return 403 if we fail to authenticate to mpd
Accept arbitrary URLs via /addurl
Replace mpd setup/teardown with decorator

- A new decorator @needsmps sets up and tears down
  the mpd connection
- The rationale is that not all views require an mpd
  connection to function
Accept mp3 audio streams
Pylint code cleanup
Minor cleanup

- Set debug only if invoked from console
- Add FIXME note
Decode youtube-dl JSON as utf8

- Needed for Python3
Add decorator to enforce json content-type

- New decorator raises 404 if request is not application/json
- Flask ensures the JSON object is properly formed or raises 400
- Decorator order matters, @jsonrequest MUST be called
  BEFORE @needsmpd
Return json from /adduri

- /adduri should behave as a proper JSON webservice and return json in
  all situations
- Errors return a msg in the json object as {'error': ...}
Initial web interface

- Using Pure and jQuery
Add README