s/dynamic/smart/g, registerSubs, more

* renamed "dynamic events" "smart events", because...I dunno, marketing?
* broke registerSubs() out of CustomEvent's prototype subscribe method's inline
  logic. Makes event-dom and event-dom-delegate smaller
* Updated Y.Event.fire() to fork for custom events even if there aren't
  subscribers. It was using the presence of subs as the indicator that an event
  was a custom event rather than checking the whitelist like subscribe and
  unsubscribe were doing.
s/delegateFilter/delegateNotify/g, Y.delegate, more

* renamed CustomEvent.prototype.delegateFilter to delegateNotify
* Added support for e.stopPropagation() breaking the notify loop through
  bubble path targets
* Added Y.delegate, since Y has ET.proto mixed in, it isn't a subclass
node getters test instanceof on data value

Rather than have setters assign Node instances, I made the getter test the
value in e.data[name] to see if it's an instanceof Y.Node. It's a tad more
work for getting the node properties, but shouldn't notably impact performance,
especially if devs cache the return value of e.get('target').

Allowing setters to store the DOM element value in e.data reduces the size of
the code and speeds up event delegation.
First pass DOM event delegation for Y.Event and Node

Haven't tested, so I'm sure it has typos and bugs. Guess what's next?