Fix circular reference memory leaks
Fix circular reference memory leaks

When dispatching the promise result, we need to clear both handlers and catchers to prevent retaining circular references when the promise is captured into the handler and/or catcher. Also refactor part of the `notify` logic.

simonbrunel/qtpromise