Play local files without storing them in the database

There are various use cases where we would like to play local files
without them being stored in the database:
- BMF while a scan is running
- playing files from removable media (eg. USB sticks)

In order to allow this, we'll have to make sure LMS doesn't treat such
files the same way as regular files. Create ProtocolHandler class based
on File which deals with tmp:// file type. Modify the musicfolder query
to use this URL scheme instead of file:// when needed (or on request).
Fix artwork display of temporary items
Rename TempFile protocolhandler to Volatile. Keep url scheme of tmp://
Allow playing back folders full of files in volatile mode.
Add new "Browse Filesystem" mode to ExtendedBrowseModes plugin. 

This new mode allows the user to browse any folder on his system without
adding tracks to the database.
Fix root URL on Windows. Needs a trailing slash or wouldn't be
recognized.
Merge branch 'public/feature/tmpfile_handler' into public/7.9