Backend with multiple URI schemes shows up multiple times when browsing
Given a `Backend` that supports multiple `uri_schemes` (such as the `local` backend), and also supports browsing, i.e. has a library that sets `root_directory` and implements `browse()`, the backend library's `root_directory` will show up multiple times (once for each URI scheme) when running `mpc ls`.  This is only an issue in the _root_ directory, which is (I think) served by Mopidy core. Browsing subdirectories _within_ the backend, where the backend's `browse()` method gets actually called, works fine.

AFAICS, the code for serving the root is in `mopidy.core.LibraryController.browse()`:

``` python
    if uri is None:
        backends = self.backends.with_library_browse.values()
        return [b.library.root_directory.get() for b in backends]
```

IMHO only unique `root_directory`s should be returned here, and not a copy for each URI scheme a backend supports.

diff --git a/mopidy/core/library.py b/mopidy/core/library.py
index 1ff4e874..903f25ae 100644
--- a/mopidy/core/library.py
+++ b/mopidy/core/library.py
@@ -62,7 +62,8 @@ class LibraryController(object):
         """
         if uri is None:
             backends = self.backends.with_library_browse.values()
-            return [b.library.root_directory.get() for b in backends]
+            root = [b.library.root_directory.get() for b in backends]
+            return list(collections.OrderedDict.fromkeys(root))
 
         scheme = urlparse.urlparse(uri).scheme
         backend = self.backends.with_library_browse.get(scheme)
diff --git a/tests/core/test_library.py b/tests/core/test_library.py
index a1daa0bd..1db22688 100644
--- a/tests/core/test_library.py
+++ b/tests/core/test_library.py
@@ -19,7 +19,7 @@ class CoreLibraryTest(unittest.TestCase):
 
         dummy2_root = Ref.directory(uri='dummy2:directory', name='dummy2')
         self.backend2 = mock.Mock()
-        self.backend2.uri_schemes.get.return_value = ['dummy2']
+        self.backend2.uri_schemes.get.return_value = ['dummy2', 'du2']
         self.library2 = mock.Mock(spec=backend.LibraryProvider)
         self.library2.root_directory.get.return_value = dummy2_root
         self.backend2.library = self.library2
@@ -138,7 +138,7 @@ class CoreLibraryTest(unittest.TestCase):
         self.core.library.refresh()
 
         self.library1.refresh.assert_called_once_with(None)
-        self.library2.refresh.assert_called_once_with(None)
+        self.library2.refresh.assert_called_twice_with(None)
 
     def test_find_exact_combines_results_from_all_backends(self):
         track1 = Track(uri='dummy1:a')
['mopidy/core/library.py', 'tests/core/test_library.py']