Add callback argument to track completion of dump

> Should the callback be called on nextTick?

No, it's already asynchronous.

> Does this need to be integrated with AsyncWrap?

If you use `node::MakeCallback()` here, it will be.  (Well, not exactly AsyncWrap but the infrastructure that drives domains and such.)

> Should I be casting onCompleteCallback to a Persistent<Function> and calling onCompleteCallback->Dispose() here?

See above.  No cast but you should call .Dispose(), yes.

Note that you need a HandleScope here to avoid leaking handles.