Minimize setTimeout delays in tests

Mocha was giving warnings that a few tests were running slowly. In both cases, the reason was that there was a `setTimeout` running a few callbacks under a significant delay. I reduced the time to 1ms and tests still passed so I don't see why the delay was necessary. If the delay **is necessary**, perhaps these tests should be failing under the new conditions I've set. 

If someone can shed some light on why the callbacks are called under a `setTimeout` in the first place, that would also help me out.
We can use `setImmediate` here similarly.

Ryan, while you are there, could you take a look if we need `doneCalled` flag? Mocha had a bug and we was ending up invoking `done` multiple times or it was supposing so. Currently the following is working for me.

``` js
 var sub = conn.subscribe('sub1', { autoAck: true });
    sub.on('message', function() {
      done();
    });
```

It also important to test that on-message is happening once.