libthread_xu - implement pshared for sem_init
Implement the pshared flag, creating a semaphore in shared memory
that works across fork(). No additional kernel support is needed,
our umtx* system calls work on the underlying physical memory and
thus work just fine with shared memory.
sem_alloc() uses mmap() to allocate a page of shared memory.
Currently sem_destroy() does not recover the allocated memory for
shared semaphores as it is unclear how one is supposed to do so
in a fork()ed environment.
Requested-by: Hasso Tepper <hasso@estpak.ee>