Introduce list_lock_held() macro

The list_lock_held() macro provides a control structure which first acquires
the mutex of the given list, executes the body and then releases the mutex.

This control structure is based upon a 'for' loop to execute the loop body
once and then to unlock_list(). However, this requires a control variable so
that the loop body is really executed once. I tried to avoid compiling with
-std=gnu99 (which would enable 'for (int ...)') and force the user to
provide a variable because that would not be intuitive for this macro.
Emitting two statements (one of which is a variable declaration) won't go
either.

So I, again, rely upon undefined behaviour (at least, I think so):
alloca(sizeof(int)) can be used to allocate stack space, so we can allocate
an anonymous int whose address can later be look up by using alloca(0) which
just doesn't move the stack pointer but only returns its value, i.e. the
address of formerly allocated int. This holds at least if we can rely on the
fact that the stack pointer isn't moved at all and that gcc never adjusts
the stack pointer mid-function (which accords with all output I've seen from
it in my life).

Again, 'break'ing out of this macro will _not_ unlock the list. One must do
that by oneself then.