epoll: make epoll_wait respect concurrent updates

Fixes #331.

The solution is rather a workoaround. It's using an extra pipe file,
which is added to the poll list, to interrupt epoll_wait() upon
updates.

This fix is needed to implement httpserver shutdown.

Signed-off-by: Tomasz Grabiec <tgrabiec@cloudius-systems.com>
Signed-off-by: Avi Kivity <avi@cloudius-systems.com>
tests: add test for epoll_ctl concurrent with epoll_wait

Signed-off-by: Tomasz Grabiec <tgrabiec@cloudius-systems.com>
Signed-off-by: Avi Kivity <avi@cloudius-systems.com>
tests: make tst-epoll return non-zero exit code on error

Signed-off-by: Tomasz Grabiec <tgrabiec@cloudius-systems.com>
Signed-off-by: Avi Kivity <avi@cloudius-systems.com>