Promise methods return `this`

Fixes bug where the promise `then` and `fail` methods did not return `this`, breaking the ability to chain method calls as demonstrated in the README.