remote-hg: fix shared repo upgrade

The first repo might not have a clone (it's local), so let's check for
that and try to find one.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
remote-hg: make sure shared repo is present

If there's no local clone, just init the shared repo, it will be updated
accordingly later on.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
remote-hg: always try to initialize shared repo

We don't need the initial clone, if the repository is shared, pulling
from the child updates the parent's storage; it's exactly the same as
cloning.

This way the code is simpler.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>