Use Q.finally() and Q.done() to let Q to handle and rise the errors in callback function

Currenlty Q.done(_done,_done) is overriding the internal mechanism of Q that rises the errors, so if there is any error in the user supplied callback function, it will be silently ignored.
By using Q.finally and leaving Q.done() to handle errors, same expected behaviour is kept.