async_wrap: pass provider information to AsyncWrap

Adds "provider" types to `AsyncWrap` so we can determine where the call is coming from. This will allow for filtering when someone sets up a request.

@tjfontaine I'm not going to implement the user-land API since that's mostly reserved for the `tracing` module.