listeners: Make listeners async

- Add a common Listener base class
- Make send helper for sending out events with pykka
- Make send async helper for avoiding blocking events

This change ensures all the events now get sent out via the MainThread instead
of blocking the actors.
listeners: Import grouping fix
Merge pull request #594 from adamcik/feature/async-listeners

listeners: Make listeners async
logging: Remove use of root logger
local: Start moving tag cache code out of main local
local: Move tag cache translators and tests out.
docs: Update changelog
main: Only log creation of config when file does not exist.
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.
docs: Document value separation in config values with lists
docs: Add Moped client, update other web clients