Redo queueing of commands
Redo queueing of commands

This should reduce the notification spam and orphaned notifications on multiple saves of pubspec while a `pub get` is still in progress. Commands are queued behind each other, but dropped if there's already an unstarted command (of same cmd/args) in the queue. Cancelled tasks remain in the "queue" and just immediately resolve once it's their turn to start (this way, future tasks won't start prematurely).

Fixes #1230.

Dart-Code/Dart-Code,Dart-Code/Dart-Code,Dart-Code/Dart-Code,Dart-Code/Dart-Code,Dart-Code/Dart-Code