async-wrap: use js push fn, change a little api

AsyncWrap::AddAsyncListener() should have been calling to a JS function
to more quickly check if the object already exists in the queue.

Also changed static has_async_listener(uint32_t) to just
has_async_queue(). There was no reason to need to pass the flag. Guess
there was when domains still existed, but no more.