Add callback argument to track completion of dump

AsyncWrap is an internal implementation detail so it's not safe to inherit from it.  For one, the implementation may change in API/ABI-incompatible ways without prior warning.

Apart from that, the fact that there is a libuv handle involved somewhere isn't interesting, it's just an implementation detail (one that isn't exposed, either.)  The user of the API only cares that his callback is invoked once the heap dump has been written to disk, right?