Added check for done method on returned promise

This fixes #1
Now that I'm paying even closer attention, I'm noticing this actually isn't functionally equivalent to what we had before.

Before, if the promise was successfully fulfilled, we'd leave `error` as `null` and only set the `isFinished` variable to true (same as you have here). However, if there were an error, we'd set the `error` value, set `isFinished` to true, and then _swallow_ the error (jasmine would be responsible for picking up the error results and presenting them). With what you have here, we'd still set the `error` and `isFinished` values, but we'd also be throwing up an uncaught error.

So really, it seems we didn't actually need `.done()` in the first place. We really just needed both an `onFulfill` and a `onError` callback to the `.then()`...and that's really it.

Heh, sorry for the feedback thrash here -- mind fixing this?