use signalfd to receive signals

This allows printing a little bit more information where the singnal came
from, e.g.,  uid and pid of the sender.

Signed-off-by: Sami Kerola <kerolasa@iki.fi>