Replace caller function with setTimeout since setTimeout allows last arg...

...ument to be omitted.

Technically, if we call `nextTick` with 2 arguments (where the last one is not `0`), this would not be identical, but this *might* improve performance.

Due to the potential regression, we might not want to merge this. Your choice :).
Yes - the wrapping does guarantee that no random delay will cause issues. Technically, the only way someone could pass in a random delay is by using `Async.nextTick`. So perhaps the better way of solving this would be to do this:
```
Async.nextTick = Async;
```

I'm not sure if such a circular reference would cause issues with some browsers/runtimes, but it would help when writing code as only one entrance path to nextTick should be considered.