local: Start moving tag cache code out of main local
local: Move tag cache translators and tests out.
core: Refactor core Backends helper

Replaces the jungle of extra dicts/lists with an OrderedDict per backend
feature type. Also makes sure that each type/scheme is unique instead of
the scheme alone.
local: Always return track with just uri for local playlist tracks

This is related to #527, but is only a stop gap until we fix it right. Note
that this actually causes a regression, as not playlist tracks will have any
metadata after this change.
tagcache: Split out to own extension for eventual deletion.
utils: Remove find_uris and update find_files

- find_uris is no more
- find_files now returns file paths relative to path being searched
- find_files now only works on directories
- find_files tests have been updated to reflect changes
- local scanner has gotten a minimal update to reflect this alteration
local: Fix inconsistent uri handling in local scanner

We now only operate on local track uris, instead of a funny mix of local and
file uris. To achieve this we instead maintain a uri->path mapping to use for
the actual scanning.
local: Move find_exact and search out of tag cache.
local: Add new json based library

- Sets local-tagcache as disabled
- Implements new library that uses a gzip compressed json as storage.
- Thanks to reuse of existing serialization code this is a fairly small change.
local: Review comment fixes
docs: Add info about local-json and pluggable libraries
config: Add deprecated config value support.

This makes it possible to mark a key as deprecated, this implies it will be
ignored if present, and never included in the resulting config.
config: Improve handling of Deprecated config values
local: Remove tag cache support

- Updates doc references to tag cache
- Removes tag cache from config and marks it deprecated
- Removes tag cache from setup.py
- Removes tag cache from config converter
- Removes tag cache from tests
- Converts local library tests to use JSON.
local: Split out library reading and writting

- Create $XDG_DATA_DIR/mopidy/local in the local extension's validate env.
- Make sure we handle bad data causing ValueError in JSON decoding
- Initializing empty file causes more harm than good as it just leads to a
  ValueError. Switched to doing write_library(json_file, {})
- Helpers have been updated to be library oriented, not track. This paves the
  way for having {tracks: {uri: ...}, artist: {uri: ...}, ...} type
  denormalized data.
local: Cleanup uri conversion helper naming and implementation.
local: Review changes
docs: Update changelog with pluggable libraries.
Merge branch 'develop' into feature/local-json
docs: Minor tweaks