Use registerTrigger function to construct PendingEvent

The FileDescriptorTrigger variant type is introduced as the PendingEvent
now holds file descriptor triggers only.
Call signal handlers after pselect
Share PendingEvent to enable weak reference