Timeout options, more examples
Send/receive timeouts (#50)
* Changed port to just be UInt16 instead of an enum, fixed wrong endianness when parsing port from ResolvedInternetAddress, fixed potential leaks in cases when ResolvedInternetAddress was getting created, added local and remote address getters on sockets, added a way to wait on a socket to become readable with a timeout
* Adding options to set sending and receiving timeout
* Fixing tests
* Added a stub for timeout tests
* Added send and receive timeouts to socket options, still up to the caller to change the options before their send/recv calls
* Linux uses a different error code for timeouts, adapt that in tests
* Adding one more test to test the default values