Add pessimistic locks, which clobber rather than make-tentative, and lock domains (currently limited to globals) which limit the influence of a particular lock instruction