qml: prevent starting drag before the mime data is set
For internal drag operations, it is possible to start the drag before the input items are resolved because it is feasible to wait for the input items to be resolved on drop.
However, for external drag operations, the mime data needs to be set before drop as we don't have the luxury to wait for mime data on drop. In fact, even if there was such a chance we would still need to make sure that the mime data is set as soon as the drag starts because the receiver application might do actions based on drag enter event and the accompanied mime data.
Since it is not possible to know whether a drag operation is an internal or external operation, we should pre- emptively set the mime data before the drag operation starts.
See !5899 (merged). See #28762 (closed). Request review @chub.