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.

#### Related issues: 
#44, #397, #527

#### Todo:
- [ ] Docs
- [ ] Remove ``local-tagcache``
- [ ] Possibly replace tests lost in ``local-tagcache`` removal
- [ ] Changelog
- [ ] Add new deprecated setting type so we can start removing ``tag_cache_file``