Adds support for receiving multicast packets

Adds support for receiving multicast packets. The addition only works on Mac OS for now.

With multicast, clients choose to subscribe to packets by subscribing to a multicast group. The benefit over setting the packets to be received by everyone on the network listening to a specific port (i.e. broadcast) is that it enables routers to use network bandwidth more economically, mostly useful when streaming lots of data. http://en.wikipedia.org/wiki/Multicast_address

In this implementation, listening to an IP address in the multicast range (224.0.0.0 through 239.255.255.255) automatically enables multicasting on the socket.