Added check for done method on returned promise

This fixes #1
On second thought, let's not mutate the promise (or the prototype) -- this would be pretty bad form.
Instead let's just implement `.done()` in a local helper method that accepts the promise directly