cluster: support UDP sockets (WIP)

@bnoordhuis can you review this. I know it is rather messy, because uv_udp_t is not a subclass of uv_stream_t. My idea is that in the future this should be the case.

And yes, the libuv changes should go into a libuv branch. This just helps reviewing it as a whole.