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.
abort: impossible time zone offset: 4444444
transaction abort!
rollback completed
abort: invalid date: '1\t15.1'
transaction abort!
rollback completed
abort: invalid date: 'foo bar'
transaction abort!
rollback completed
abort: invalid date: ' 1 4444'
transaction abort!
rollback completed
abort: date exceeds 32 bits: 111111111111
transaction abort!
rollback completed
abort: No such file or directory: .../test/bar