Add overload to PromiseManager.whenAllCompleted and .whenAllResolved to accept an Executor for the callback.  Fix race condition in PromiseObservable by serializing the callbacks on the current thread.