(feat)support flock based locking for blender scripts

This will fail immediately if the lock can't be acquired. For the case where jobs are overlapping a little, perhaps it would be useful to allow some timeout that a job is willing to wait around to acquire the lock?