Add support to export as YUI module. Fixes caolan / async#312

The YUI module name shall be "async", and can be accessed as `Y.async`.

Note that YUI can be present on browser as well as on Node.js side.

Since it is possible to have require.js + YUI or Node + YUI, I've
replaced if..else conditions to independent blocks.

In case no module is exported, the async shall still be attached to the
global / window.