Add delay and once

`delay` takes a time in ms and a signal and executes events from the signal after a delay of ms

`once` takes a signal and executes the first event from that signal and then stops
The intention was to stop propagation of the event to subscribers. A repeated call to `set` won't call any functions.

I assume you can think of a better way? I'm pretty new to this.