Implement a debounce function that takes a callback function and a delay in milliseconds, and returns a debounced version of it.
debounce
The returned function should forward all arguments to the original callback.