qml: refactor DnD data resolution
this patch re-takes the idea developed there: !3593 (comment 379420)
- this unify how data and input items are resolved
- request id is no longer passed to the implementation (local capture)
- an FSM is used to track resolution sequence
- retrieval of the input item from the drop handler is made using a Promise
marked as draft as it depends of !3776 (merged)