Properly detect updated values of items

Somehow the property-based test never caught this issue, so a regression
test was manually added.

When finding differences in asymetric trees with varying numbers of keys
(this was likely the test's blind spot), the code would simply remove
the current key by assuming that no conflict was in there.

The new version expands the distributed ad-hoc protocol a bit to specify
the hash to ignore (the hash(key, val) one), giving us a proper
behaviour there.