Update API.md
Implement cancellation with custom rejection reasons
.timeout() cancels instead of rejecting the promise
Merge branch 'patch-2' of github.com:benjamingr/bluebird into benjamingr-patch-2