repack: move to fcntllock based locking
Previously repack use the standard Mercurial symlink based locking mechanism.
This caused problems on our laptop users because the symlink locking relies on
the host name and sometimes their hostname changes due to weird IT issues, which
resulted in locks existing forever and repack never running. The symlink based
locking scheme was also a problem in chroots, where two processes in different
chroots may attempt to repack the same shared cache at the same time.
Switching to a fcntllock based scheme will solve these issues.
Differential Revision: https://phab.mercurial-scm.org/D1543