Feature/event signals

- Add new signal `sig/add`
- Add new signal `sig/remove`
- Allow signals to interrupt by returning `false`