Bug 918970 - display existing thread when sending a sms from contact app

old PR : https://github.com/mozilla-b2g/gaia/pull/16216

To answer your questions:
* yes, it's always better to reject with a real Error than with a string. This has the added useful property to have a stack :) so we know where the Error comes from when (for example) we display it
* `.reject` does not return; it's a normal function call. so you need to reject and then return. However you can never change a promise state nor value. Once it's been rejected, you can't resolve it, and vice versa.

I've made a jsbin to show all this: http://jsbin.com/qobacicijo/1/edit
The first case is interesting: I actually didn't really know what it meant to throw from inside the Promise constructor's callback :) Now I know it's the same than throwing.

There is something I dislike in Remy Sharp's example: if `compare` is asynchronous, throwing in the callback won't throw in the Promise constructor's callback. In the end, the promise will never be fulfilled, and there is no way to catch the exception in this case.