rhg: more efficient HgPath::join
This commit makes HgPath::join slightly more efficient
by avoiding one copy.
It also avoids a particularly inefficient (quadratic) use of
HgPath::join by using a new mutating function HgPathBuf::push instead.
The name for HgPathBuf::push is chosen by analogy to PathBuf::push.
Differential Revision: https://phab.mercurial-scm.org/D11721