Takes a signal and a time value, and creates a signal which yields True
when the input signal yields, then goes back to False after the given
number of milliseconds have elapsed, unless the input signal yields again
in the interim.
Takes a signal and a time value, and creates a signal which waits to yield
the next result until the specified amount of time has elapsed. It then
yields only the newest value from that period. New events during the debounce
period reset the delay.