Declare event handlers in markup via on-foo=... syntax.
The attribute value can be a global, ex: on-foo="myClickFunc()", or inline javascript.
Inline javascript can reference "event", ex: on-click="console.log(event.pageX);".

This change eliminates the requirement 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", ...).

Also, CustomElement#emit() now returns the value returned by on.emit(),
allowing to know if the event was prevented or not.

Fixes #76, fixes #171.
Refs #204.
Event binding in templates, like <button on-click="{{somethinginwidgetscope}}"></d-widget>.

This also changes the syntax (well, the naming of the attribute) for binding anonymous functions
in templates, ex: on-click="g++;" instead of onclick="g++;".

Fixes #172.
Refactor StoreMap to leverage code in CustomElement,
and to make "item", "store", "value" parameters
available to markup function definition, ex: fooFunc="return item.firstName;".

Refs #104.