This patch takes socket logic out of ConnectionFileDescriptor and moves into a Socket class in the Host layer, updating ConnectionFileDescriptor to use the Socket class instead of hand-coded socket logic.
Windows provides a wildly different interface to sockets than POSIX, so this change will make it easier to make sockets, and ultimately the ConnectionFileDescriptor class, work correctly on Windows.
I tested on Windows (as much as I could anyway) and Linux. On Linux I can create an lldb-platform that listens for connections, and I can successfully connect to it and send remote commands, all going through the new code path. There is 1 test failure, in TestProcessIO.py. It seems to have trouble with SBProcess.PutSTDIN. I'm still trying to figure this out, but everything else seems to work. Likely I will need some help testing on Mac and getting the Xcode project updated accordingly with the new files.