Make the IdentityCache scalable

(Missing Feature, Closed -> Fixed, Priority: Critical, Test Status: No automated tests yet , Reported By Justin du Coeur, )
Summary: Currently, this is a singleton. It should not become a Cluster Singleton -- it is hit much too frequently. So we need to figure out how to shard this nicely.
In principle, we might be able to let the various shards run more or less independently. The only issue is cache invalidation, and even that's fairly straightforward so long as we can cope with eventual consistency -- we have a Cluster Singleton that is solely responsible for updates, and which all invalidations go through. It then notifies all of the shards whenever a record is invalidated.
Note that, conceptually, we want a CRDT here: I believe our use case is almost exactly correct. So let's make sure we understand the CRDT rules. IIRC, Patrik now has official support for CRDTs: look into this.