Add Y.Do as an EventTarget - WIP
Reimplement Y.Do as obj using a CustomEvent

Y.Do is an object with its own `before` and `after` methods that call into a
CustomEvent named AOP with method overrides to wrap object methods and store
the originals in _yuievt.aop[objYuid:methodName]. Custom `fire` respects the
callbacks returning `Do.Halt` instances etc per the current functionality, but
otherwise uses the standard Subscription objects for subscription and
notifications.

* fix typos
* add API docs
Updates from compat testing. Sadly, many changes

Sad because there are many changes in one commit, rather than isolated commits,
not (that) sad about the changes.

* YUI.add('eventx',...) => YUI.add('eventx-base', ...)
* EventFacade _prevented and _stopped => prevented and stopped
* Subscription notify([arg [,arg]]) => notify(argArray)
* A lot of jiggering around with EventFacade for partial back compat
* Added getter/setter for target and currentTarget on EventFacade
* resolveBubblePath no longer relies on object property insertion order
* stop() in on() phase clips bubble path so after()s don't bubble beyond that
  point, either.
* detach() during fire execution now supported - originally, detach modified
  the subscriber list, causing trouble in the notification iteration, so the
  subs list was copied, which allowed detach() to modify the original list, but
  the current notification list still contained the detached sub. Now, detach()
  replaces the sub.callback with a no-op, so the callback executes, but does
  nothing.
Jiggering with Facade and other compat changes

* Remove isEventSupported()
* Add _getter logic for DOM facade props needing normalization
* Add ES5 getters/setters for the same for partial back compat
* Add DOMSubscription class for simpler instantiation and detach(), and proper
  `this` defaulting in notify()
* Y.on(type, fn, doc.getElementsByTagName(...)) works (DOM collection support)
* Add Y.Event.purgeElement()
Fix object syntax subscription, code cleanup

Object syntax was assuming
target.delegate({ foo: fn }, null, filter) rather than the sane
target.delegate({ foo: fn }, filter)
More smarter getter for container, code cleanup

container _getter was looking on the facade, not in the subscription details,
which is where it is.
s/eventx/eventx-base/ in requires
Make container _getter more smarter
Add node.purge()
Update manual test pages
Add eventx-compat module to replace EventFacade...

with version that dumps fire(type, OBJ) OBJ properties directly onto the facade
instance.
s/eventx/eventx-base/ in requires