Lock on individual keys, not the whole entry set @kiril

This obviously grows the keyspace, but these keys should all be
short-lived. The advantage is that the `WATCH` is much more granular,
so it's much less likely that the transaction will have to be retried
(right now retries happen way too often in high-volume
`IsolationQueue`s).