s/before/on/g, refactor delegate logic for reuse, +features...

* Renamed "before" phase to "on" phase (it was causing trouble with preventDups
  for synthetic events, because DOM events use 'on' and 'capture')
* Core delegate logic adjusted to allow for reuse by dom and synthetic events
* Add support for thisObj passed as a function to default the thisObj based on
  the subscription notify args (aka contextFn)
* Add support for late bound callbacks, e.g. target.on(type, 'method', obj)
  notifying obj.method(...)
Remove most of now unnecessary delegate code...

* Removed most of the delegate related code, leveraging core delegate logic
* Removed DOMSubscription class in favor of Subscription support for thisObj
  defaulting by function
* Add preventDups support to DOMEvent (for new or compat synth events)
* Add resolveBubblePath for delegate support
* Add setters for target, currentTarget, relatedTarget, and container props.
  e.data must store raw DOM elements, getters may return Y.one() wrapped value.
Remove most of synthetic logic, now unnecessary

Logic absorbed into FacadeEvent or DOMEvent. Very little shimming was necessary
for backward compatibility.

There is one critical incompatibility: if a synth implementation defines an
on() or delegate() that calls this.on(), it will result in an infinite loop,
because on() is supplied by SyntheticEvent, and configured on() and delegate()
are moved to _oldOn() and _oldDelegate(), which are called from the core on().