Prevent relinking from blocking a checkout

When mercurial relinks two repositories, it needs to lock both data stores of the repositories. When you relink between two shared repositories, the two repositories are backed by the same store, so mercurial tries to double-lock the same store, which obviously times out.