#46: Refactor igtlSocket into abstract base class and derived class, and
      add igtlNifTKSocket with same abstract base class.

 Move includes into .cxx
 Change comment format from // to ///
 Use constructor initialisers
 Added igtlSystemErrorMacro, calls perror (linux), WSAGetLastError (win)
 Move GetConnected implementation to .cxx
 Move CloseSocket implementation to .cxx
 GetConnected now declared const
 New method to validate socketdescriptor >= 0
 Make GetConnected and IsValid return bool instead of int, as they are currently true/false semantics
 Rename igtlSystemErrorMacro to igtlSocketErrorMacro and make consistent error handling.
 Update ClientSocket and ServerSocket, given improvements in AbstractSocket
 Fix error handling in Accept function - check for failure = -1