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
hg init
touch unknown
touch a
hg add a
hg ci -m "1" -d "1000000 0"
touch b
hg add b
hg ci -m "2" -d "1000000 0"
echo %% Should show unknown
hg status
hg revert -r 0
echo %% Should show unknown and b removed
hg status
echo %% Should show a and unknown
ls