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

> 我的观点来看，这个应该没什么问题，应该允许 thenable 的存在

问题在于`thenable`进来后是转为当前的`Promise`类，还是直接就吐回去了，也就是说，`cast`方法有以下2种解释：

1. 将任何对象用最高效的方法（即可不转就不转）转为当前`Promise`类的一个实例
2. 将任何对象用最高效的方法转为一个`thenable`对象

上面2个问题其实都对应的这里，到底是哪一种解释