trade in the self-pipe trick for signalfd(2)

Fixes #1

@teepark thanks Travis, you're right, both signalfd and eventfd are the way to go