add uv udp try send

Please review the commits and give me comments on them.
I think we should do it like in `uv_try_write`: modify `uv__udp_send` to always try to write immediately and return 0 on EAGAIN. Then `uv_udp_try_send` would call `uv_udp_send` with a on-stack request and dequeue it if the send didn't happen.