Various futex fixes
This makes futex use FUTEX_WAIT_BITSET (with bitset !0
i.e. "all bits") on Linux, where the timeout is absolute. Absolute timeouts are preferred, since pthread timeouts are absolute, and since they are much simpler to work with (it's hard to keep track of the time that may pass, possibly preemption, between requesting a timeout, and that timeout actually reaching the kernel).
It also fixes timeouts, which are currently ignored, and without ETIMEDOUT checks.
Edited by Jacob Lorentzon