Add SO_REUSEPORT to list of available sock options

Add the ability to use SO_REUSEPORT for multiple applications listening
on the same port for TCP accepting sockets and UDP listening sockets.
Add a handful of useful TCP socket options

Add definitions for manipulating Nagle's algorithm, corking a TCP
connection and setting the maximum TCP segment size.
Add defines for multicast membership management

Add socket options and references to ip_mreq, enabling use of socket
options for managing IP multicast group membership.
Add IPPROTO_IP for level, based on existing SOL_IP

The SOL_IP name isn't really consistent with what the Kernel define is.
Add a MulticastTtl type

The multicast TTL type is a uint8_t typically.
Add Special INADDR_* definitions

Add definitions for INADDR_* types that are handy when instructing the
kernel how to specify interfaces.
Add vim swapfiles to the gitignore
Add recvfrom(2) and sendto(2) wrappers

Add FFI function call wrappers for recvfrom(2) and sendto(2) to enable
the use of connectionless sockets.
Change sendto to return bytes sent successfully
Polish up sendto/recvfrom wrappers

Make the sendto/recvfrom wrappers a little more friendly to work with.
Add defines for Mac OS X/Darwin

Apple likes to Think Different(tm), especially where constants are
involved. Make sure that we have the appropriate constants available for
various performance-focused TCP socket options, and that the IP
multicast-related defines are correct.