Pass in Function parameters when using markup.
Fixes #204.
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", ...).

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.
Refactor code again:

1. Don't do introspection to find out names of function parameters, since it won't work
when the code is compressed (aka mangled), and since users generally don't override
widget methods through markup anyway.

2. Instead, for StoreMap hard code the parameter names for fooFunc() type methods to
"item", "store", "value", so that you can do things like fooFunc="return item.firstName;"
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.