web: Use Unicode paths to send files on Windows under Python 2
Hi,

beets version 1.4.3
Python version 2.7.11
plugins: web

Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec  5 2015, 20:32:19) [MSC v.1500 32 bit (Intel)] on win32

Following flask error was encountered when calling item/file method for non-ascii items:
```
[2017-06-14 21:36:27,233] ERROR in app: Exception on /item/52117/file [GET]
Traceback (most recent call last):
  File "c:\\python\\lib\\site-packages\\flask\\app.py", line 1982, in wsgi_app
    response = self.full_dispatch_request()
  File "c:\\python\\lib\\site-packages\\flask\\app.py", line 1614, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "c:\\python\\lib\\site-packages\\flask_cors\\extension.py", line 161, in wrapped_function
    return cors_after_request(app.make_response(f(*args, **kwargs)))
  File "c:\\python\\lib\\site-packages\\flask\\app.py", line 1517, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "c:\\python\\lib\\site-packages\\flask\\app.py", line 1612, in full_dispatch_request
    rv = self.dispatch_request()
  File "c:\\python\\lib\\site-packages\\flask\\app.py", line 1598, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "c:\\python\\lib\\site-packages\\beetsplug\\web\\__init__.py", line 209, in item_file
    attachment_filename=os.path.basename(util.py3_path(item.path)),
  File "c:\\python\\lib\\site-packages\\flask\\helpers.py", line 549, in send_file
    file = open(filename, 'rb')
IOError: [Errno 2] No such file or directory: 'PATH_REDACTED\\\\01 Marta Kubis\\xcc\\x8cova\\xcc\\x81 - Tak Dej Se K Na\\xcc\\x81m A Projdem Svet.flac'
127.0.0.1 - - [14/Jun/2017 21:36:27] "GET /item/52117/file HTTP/1.1" 500 -
```

https://github.com/beetbox/beets/blob/master/beetsplug/web/__init__.py

Unicode path fixes it for me:
```
def item_file(item_id):
    item = g.lib.get_item(item_id)
    response = flask.send_file(
        unicode(item.path, "utf-8", errors="ignore"),
        as_attachment=True,
        attachment_filename=os.path.basename(item.path),
    )
    response.headers['Content-Length'] = os.path.getsize(unicode(item.path, "utf-8", errors="ignore"))
    return response
```
diff --git a/beetsplug/web/__init__.py b/beetsplug/web/__init__.py
index 290f25b48..00718dbfb 100644
--- a/beetsplug/web/__init__.py
+++ b/beetsplug/web/__init__.py
@@ -217,12 +217,14 @@ def all_items():
 @app.route('/item/<int:item_id>/file')
 def item_file(item_id):
     item = g.lib.get_item(item_id)
+    item_path = util.syspath(item.path) if (os.name == 'nt') else (
+        util.py3_path(item.path))
     response = flask.send_file(
-        util.py3_path(item.path),
+        item_path,
         as_attachment=True,
         attachment_filename=os.path.basename(util.py3_path(item.path)),
     )
-    response.headers['Content-Length'] = os.path.getsize(item.path)
+    response.headers['Content-Length'] = os.path.getsize(item_path)
     return response
 
 
['beetsplug/web/__init__.py']