Declare event handlers in markup via on-foo=callback or on-foo="callback()" syntax.

This eliminates the need to declare an onfoo: function(){ ... } callback in the widget,
at the cost that users can no longer do things like myWidget.onfoo = callback or
test if "onfoo" in myWidget.  Rather, users must call myWidget.on("foo", ...)
or myWidget.addEventListener("foo", ...), or $(myWidget).on("foo", ...).

Fixes #76, fixes #171.