Make futex() interruptible and add a test.

(This is the first time I tried debugging a multithreaded process, and when we hit an unexpected trap, my heart almost stopped because I thought our usage of waitpid() might have been buggy.  Whew!)