signal: Fix starvation of signal streams on drop of another instance
signal: Fix starvation of signal streams on drop of another instance

* We introduce a new global structure which keeps track of how many
signal streams have been registered with a given event loop (the event
loop is identified by its OS file descriptor)
* We only attempt to deregister our global evented pipe from any event
loop if and only if we are the last signal that was registered with it

tokio-rs/tokio,tokio-rs/tokio