Add a ctor to NSAsyncActionDispatcher that can revive NSAsyncActionDispatcher zombies. Fixes #5203.
Add a ctor to NSAsyncActionDispatcher that can revive NSAsyncActionDispatcher zombies. Fixes #5203.

The problem is that we call Dispose on NSAsyncActionDispatcher instances while native code can
still call release. So when release is called, we end up in NSObject.NativeRelease which is
overriding the custom release implementation. The issue arises when the custom marshaller
tries to find the NSAsyncActionDispatcher instance for the given handle - the instance
has been disposed and the link between the handle and the instance broken, so nothing is
found. Then the marshaller needs this ctor so that it can create a new managed peer.

cwensley/maccore,jorik041/maccore,mono/maccore