First whack at UDP send/receive sockets for Mio

Add initial support to MIO for UDP sockets, including the ability to
join multicast groups and listen. Still need to add support for
recvfrom/sendto, but works just fine for connected UDP sockets.

Depends on nix-rust having pull request https://github.com/carllerche/nix-rust/pull/12
My thought for this was to try to force people to write portable code that takes advantage of OS-specific features by bombing at compile time, rather than ending up with unexpected behavior. As an example, if on OS X someone called set_reuseport and it was a no-op, their application would behave very differently from running on Linux after calling set_reuseport. Instead, the change in behavior could be "expressed" as a risk at compile time, so the programmer would know they are potentially taking advantage of a non-portable behavior. Just my $0.02 on that, though.