Reduced occurences of accidental connection snatching.

GraphGadget::updateDragReconnectCandidate will early out if there are no free output plugs, or if a free output plug defines a corresonding input which is not free. Fixes #325 and Fixes #313. Fixes #283 enough that I think we should close it, lest it be open for all eternity.