Update lock_db values

The change introduces `locker:update/{3,4}` which updates locked value, if existing value matches given one. It does not extend the lease.

Btw, the proper tests might fail, but it doesn't relate to the changes, because `locker_proper:replicate()` propagates changes in async way and immediate `locker_proper:read/2` from slave can return `{error, not_found}`, whilst the read postcondition only checks `#state.replicated_leases`.