TaskQueue copied from flutter_tools for use in other Dart tools

Example

import 'dart:async';

import 'package:flutter_tools_task_queue/flutter_tools_task_queue.dart';

void main() async {
  final queue = TaskQueue();
  for (final i in List<int>.generate(1000, (i) => i)) {
    unawaited(queue.add(() async => print('Processed $i')));
  }
  await queue.tasksComplete;
}