Don't overwrite existing signal handlers

Raise an exception if something else is already registered to handle
this signal.
Simplify EPollEventHub signal handling

Callbacks are scheduled in run_now, like callbacks from Timers. This
matches the LibEvEventHub and generally properly schedules the handling
of signals.