Redid main to make it flow better.

Removed receive and send from socket as their form may differ across basic socket types.
Changed the flow of a couple of TCP socket functions to make them more like their counterparts.
Made an attempt at a UDP socket class that ultimately failed.
Merge branch 'UDP'