Remove need for global umtx sem lock.

This change rewrites freebsd_umtx_sem_wait/wake() and eliminates
the need for a global lock.