rejection error flagging by using error.isAsync = true

Note: I'm not necessarily suggesting accepting the PR as it is, its just there to serve as a base for discussion :P 

I replaced the rejection error property with `isAsync` and its value with `true`. This enables participation into this convention by other promise libraries without them having to depend on bluebird.

In theory, this should be super awesome. In practice, I don't know if this could cause problems. What do you think? Is the property named correctly? What is the correct terminology there? Should it perhaps be isRejection? `isFromIO` ?

Note, @domenic suggested the word `async` as opposed to `rejection` originally, I think, to avoid terminology clashes. If I understood it correctly, sync errors are also converted into "rejections" in the sense of the word that most other promise libraries use.

I'm really excited about this - it could lead to a convention that is adopted by other promise libraries which should help to get even more acceptance of promises in node-land where people are not comfortable with catching thrown errors :D