Fix handling of paths when run outside the repo.
The main problem was that dirstate.getcwd() returned just "",
which was interpreted as "we're at the repo root". It now returns
an absolute path.
The util.pathto function was also changed to deal with the "cwd is
an absolute path" case.
#!/bin/sh
hg init a
cd a
echo bar > foo
hg add foo
hg ci -m 'add foo' -d '1000000 0'
echo foobar > foo
hg ci -m 'change foo' -d '1000001 0'
echo 'quiet:'
hg --quiet diff -r 0 -r 1
echo
echo 'normal:'
hg diff -r 0 -r 1
echo
echo 'verbose:'
hg --verbose diff -r 0 -r 1
echo
echo 'debug:'
hg --debug diff -r 0 -r 1
echo