core/event.js: Make fire() accept varargs.
Add executePromise

* Add executePromise, which calls execute and returns a promise that
  completes or rejects when the context closes.
* Remove dead execute() method, which was being overwritten by the
  binding's "execute" method.
Switch binding a method name.