In the quest for making the core as small and independent as posible, does it makes sense to drop `Y.soon` for a simpler in-house function? Something like this:

```
soon = ('setImmediate' in Y.config.global ? setImmediate :
        (('process' in Y.config.global) && ('nextTick' in process) ? process.nextTick :
        function (callbackFunction) { setTimeout(callbackFunction, 0); }));
```

As a result, we can have `yui-promise` in npm as an stand alone promise implementation, as well as the ability to move promise-core into core in the future. What do you think?