subrepo: use safehasattr instead of hasattr
Some of these instances could be rewritten as clever getattr(x, y,
default) ladders, but that felt like it impeded readability too much
to be worth the modest efficiency gain.
hg debuginstall
$ hg debuginstall
Checking encoding (ascii)...
Checking installed modules (*/mercurial)... (glob)
Checking templates...
Checking commit editor...
Checking username...
No problems detected
hg debuginstall with no username
$ HGUSER= hg debuginstall
Checking encoding (ascii)...
Checking installed modules (*/mercurial)... (glob)
Checking templates...
Checking commit editor...
Checking username...
no username supplied (see "hg help config")
(specify a username in your configuration file)
1 problems detected, please check your install!
[1]