Implementieren Sie eine `debounce`-Funktion, die eine sofortige Ausführung am Anfang einer Ereignisserie (`leading`) unterstützt, eine trailing-Ausführung am Ende der Serie standardmäßig, und eine Methode `debounceFunc.cancel()`, um den geplanten Aufruf abzubrechen.