Emit later, 支持emit异步触发

使用中经常碰到的情况是，不能确认依赖的接口就是异步的，或者是可能其在之后的修改导致不是异步的，所以要这样写，读代码的时候要倒过来

```js
  var proxy = EventProxy.create();
  proxy.fail(function (err) {
    //do something
  });
  proxy.once('getPic', function (data) {
    //do something
    proxy.emit('genPic');
  });
  proxy.once('genPic', function (data) {
    //do something
    proxy.emit('got', url);
  });
  proxy.once('got', function (url) {
    res.jsonp({
      success: true,
      url: url
    }, jsonpCallback);
  });
  Thanks.getPic(id, proxy.done('getPic'));
```

如果支持异步的`emit`，就可以把逻辑顺序写了  

```js
  var proxy = EventProxy.create();
  //异步调用emit
  Thanks.getPic(id, proxy.doneLater('getPic'));
  proxy.once('getPic', function (data) {
    //do something
    proxy.emit('genPic');
  });
  proxy.once('genPic', function (data) {
    //do something
    proxy.emit('got', url);
  });
  proxy.once('got', function (url) {
    res.jsonp({
      success: true,
      url: url
    }, jsonpCallback);
  });
  proxy.fail(function (err) {
    //do something
  });
```