Bug 1108767 - Separate ThenValueRunnable so that the constructors don't collide when the resolve value is the same as the reject value. r=cpearce
Bug 1108767 - Stop including MediaTaskQueue.h from MediaPromise.h. r=cpearce

We need this so that MediaTaskQueue can use promises.
Bug 1108767 - Add MediaPromise::{Resolve,Reject}IfExists. r=cpearce
Bug 1108767 - Allow promises to be resolved without a MediaPromiseHolder. r=cpearce

It turns out that there are use-cases where this restriction is clunky.
Bug 1108767 - Add the ability to chain same-type promises. r=cpearce