REFACTOR: First step towards datagram_socket.
REFACTOR: Rename stream_socket and datagram_socket
REFACTOR: The grand datagram refactoring.  Merge sender/receiver in
datagram_socket class and update tests.