Switch to json based library for local.

#### So far:
- Split out all tag cache code so it can be easily removed.
- Cleaned up core backends helper data now that we can use ordered dicts.
- Workaround for local using lookup on self badly, which this change makes worse :(
- Update ``find_files`` and remove ``find_uris``
- Split out search code so we can share it between local backends.
- Added library that stores items in gziped json files.
- Makes plug-able third party local libraries possible.

#### Related issues: 
#44, #397, #527

#### Todo:
- [x] Docs for setting up the json library config
- [x] Docs for creating custom library providers etc.
- [x] Remove ``local-tagcache``
- [x] Possibly replace tests lost in ``local-tagcache`` removal
- [x] Changelog
- [x] Add new deprecated setting type so we can start removing ``local/tag_cache_file``
- [ ] ~~Add ``local-json/gzip = true``?~~