Fixes SI-8689 by delegating Promise.completeWith to Promise.tryCompleteWith
as well as deprecates `Promise.completeWith` since it is now redundant.
Also adds tests to cover the desired semantics of completeWith and tryCompleteWith.