An EventBus, EventQueue, Command Pattern, and Undo-Redo library for Dart