Redesigned the socket API

Partially implemented the Datagram socket to support IP Multicast