Properly calling done() instead of then() at promise completion.

According to the Q docs, either return the promise or end the chain
with done().  This caught one bug with the tests which is now fixed.