fix dispatcher termination

This fixes `dispatcher-terminate!` so it sends termination messages to the correct fd and adds a check to make sure the caller's arguments haven't been zeroed before use, which might happen if a calling pthread is killed before the runtime handles its message.