完成 es6-promise 功能，文档后续补上

`all`和`race`不实际经过调用`cast`没问题，但效果应该一致，现在的情况是`all`里面的判断和`cast`的判断不一样（少了`constructor`的判断），这个可能会有些问题

cast的理解和我认为的一样，所以`thenable`能进来，但不会直接返回，这样很好