Library browsing support in backend and core API and MPD lsinfo command

This contributes to resolving #487 by:

- Adding `library.browse()` method to backend and core APIs.
- Making MPD `lsinfo` command return tracks and dirs, in addition to playlists. This is the command used by ncmpcpp for library browsing.

Remaining parts, that will be resolved by later PRs:

- Implementation of `library.browse()` in the local backend. I'm leaving this to @adamcik as a part of his ongoing local library refactor.
- Implementation of browse support in MPD's `listall` and `listallinfo` commands.