EntityStore should abstract the storage of entities, so they could be stored in a place other than wiki pages. In effect, this means we'll avoid using EntityContent whenever possible, and eventually deprecate EntityContent::save.
Doing so will, among other things, allow unit tests for our API modules to not touch the database.
This involves several steps:
- factor caching out of WikiPageEntityLookup
- implement WikiPageEntityStore (including a purging mechanism for caching EntityLookup)
- refactor EditEntity to use EntityStore, decoupeling it from EntityContent
- move storage logic from EntityContent::save to WikiPageEntityStore::saveEntity, deprecate EntityContent::save
- refactor remaining uses of EntityContent::save to use an EntityStore instead.
Whiteboard: u=dev c=story p=0