Un-deliverChanges() #1: get rid of the toxic addEventListener()

@devoncarew

Addresses #2611.

Additional forward-looking change added @published_reflected annotation (the comment explains what it is for).

Additional changes in spark_dialog.dart to make sure duplicate event handlers are not added (that was previously guaranteed by the addEventListener W3C spec).
Right, I thought it was unconventional Dart. Changed to returning a List instead.