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

@devoncarew

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).
I'm not sure about passing an output parameter into a function: is it an accepted idiom in Dart? The convenience at the call site was too tempting.