common: use common uv__count_bufs code

Until now it was reimplemented in 2 different places (unix, win).
unix, win: add send_queue_size and send_queue_count to uv_udp_t

This functionality is present in stream and uv_udp_t has a queue
as well so it makes sense for udp to have a send_write_size.
Since udp sends entire messages atomically, the send_queue_count field
lets the user determine how many messages are there left to send.
unix, win: add uv_udp_try_send

The function returns UV_EAGAIN if the queue is not empty and
the message couldn't be sent immediately.