In latest ES6 spec, Promise.cast has been removed.
Add `Promise#bind`, based on the bluebird API and test suite.