add sigqueue to handle all signals in the app in one place

The sigqueue module allows you to register one signal for the process
and  then dispatch them across all subscribers.

It also allows us to listen on quit signal so we can exit from the
scheduler if needed.