Invoked Q's nfcall() function to convert request to a promise. This argu...

...ably results in a cleaner syntax.

Also closed the promise chain with done() to avoid swallowing the exceptions raised in the then()/fail() callbacks.