updateref: Partially fix locking semantics
This MR partially fixes locking semantics when using the UpdaterWithHooks: we used to lock refs after having voted on them, which is wrong. It's only a partial fix though because we cannot tell whether locking succeeds right now. We need to upstream a patch to Git first to make this work because of git-update-ref(1) buffering its output. The patch is being tracked in !3761 (merged).
Part of #3761 (closed).