fix backtrace printed when cannot get lock.
change lock error handling code so exceptions have useful info and
exception handling in one place.
add test case for when cannot get lock.
#!/bin/sh
mkdir test
cd test
echo foo>foo
hg init
hg addremove
hg commit -m 1
hg verify
hg serve -p 20059 -d --pid-file=hg.pid
cd ..
http_proxy= hg clone http://localhost:20059/ copy
cd copy
hg verify
hg co
cat foo
hg manifest
hg pull
kill `cat ../test/hg.pid`